dict1 = {'Name': 'e', 'Age': 30};
dict2 = {'Name': 'z', 'Age': 27};
print "Return Value : %d" % cmp (dict1, dict2)
为什么会返回1呢,这个比较到底是什么回事?当字典1关键字AGE的值大于28时就开始大于字典2了,不是e小于z么?
dict1 = {'Name': 'e', 'Age': 30};
dict2 = {'Name': 'z', 'Age': 27};
print "Return Value : %d" % cmp (dict1, dict2)
为什么会返回1呢,这个比较到底是什么回事?当字典1关键字AGE的值大于28时就开始大于字典2了,不是e小于z么?
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
2 回答1.9k 阅读✓ 已解决
stackoverflow上有关dict的cmp的实现,代码如下:
先比较字典的长度,如果相等。再比较adiff(在A中与B值不相等的最小key)和bdiff(在B中与A值不相等的最小key),再等则比较两者的值。
长度相等,直接比较'Addr'和'Adds',所以dict1 < dict2
长度相等,key完全相等,比较value不等keys('Name','Age','Addr')中的最小key('Addr')的value('hust','whu'),所以dict1 < dict2
详情见stackoverflow