Python 字典(Dictionary) cmp()方法
描述
Python 字典的 cmp() 函数用于比较两个字典元素。
语法
cmp()方法语法:
cmp(dict1, dict2)
参数
- dict1 -- 比较的字典。
- dict2 -- 比较的字典。
返回值
如果两个字典的元素相同返回0,如果字典dict1大于字典dict2返回1,如果字典dict1小于字典dict2返回-1。
实例
以下实例展示了 cmp()函数的使用方法:
实例(Python 2.0+)
#!/usr/bin/python
# -*- coding: UTF-8 -*-
dict1 = {'Name': 'Zara', 'Age': 7};
dict2 = {'Name': 'Mahnaz', 'Age': 27};
dict3 = {'Name': 'Abid', 'Age': 27};
dict4 = {'Name': 'Zara', 'Age': 7};
print "Return Value : %d" % cmp (dict1, dict2)
print "Return Value : %d" % cmp (dict2, dict3)
print "Return Value : %d" % cmp (dict1, dict4)
以上实例输出结果为:
Return Value : -1 Return Value : 1 Return Value : 0



tianqixin
429***967@qq.com
参考地址
Python 3.X 的版本中已经没有 cmp 函数,如果你需要实现比较功能,需要引入 operator 模块,适合任何对象,包含的方法有:
实例
>>> import operator >>> operator.eq('hello', 'name'); False >>> operator.eq('hello', 'hello'); Truetianqixin
429***967@qq.com
参考地址
qing
282***728@qq.com
参考地址
字典 cmp() 的笔记规则:
先比较字典的长度,如果相等。再比较adiff(在A中与B值不相等的最小key)和bdiff(在B中与A值不相等的最小key),再等则比较两者的值。
长度相等,直接比较'Addr'和'Adds',所以 dict1 < dict2:
>>> dict1 = {'Name': 'e', 'Age': 30, 'Addr':'hust'}; >>> dict2 = {'Name': 'z', 'Age': 27, 'Adds':'hust'}; >>> print "Return Value : %d" % cmp (dict1, dict2) Return Value : -1长度相等,key完全相等,比较value不等keys('Name','Age','Addr')中的最小key('Addr')的value('hust','whu'),所以dict1 < dict2
>>> dict1 = {'Name': 'e', 'Age': 30, 'Addr':'hust'}; >>> dict2 = {'Name': 'z', 'Age': 27, 'Addr':'whu'}; >>> print "Return Value : %d" % cmp (dict1, dict2) Return Value : -1 >>> min('Name', 'Age', 'Addr') 'Addr'qing
282***728@qq.com
参考地址
best
kus***ubei@sina.com
字典比较说明:
1、先比较字典的长度。
2、dict1 最小的 key 与 dict2 最小的 key 比较。
3、dict1 最小 key 的 value 与 dict2 最小 key 的 value 比较。
4、循环(2,3步)执行第二小的 key。
>>> dict1 = {'rame': 'Zara', 'Age': 27, 'Class': 'airst'} >>> dict2 = {'rame': 'mara', 'Age': 27, 'Class': 'First'} >>> print "cmp(dict1,dict2) = ",cmp(dict1,dict2) cmp(dict1,dict2) = 1如示例: Age=Age,27=27; Class=Class, airst > firstç; 故 dict1 > dict2 输出 1。
注意: 数字 < 大写字母 < 小写字母。
best
kus***ubei@sina.com