Python 比较两个字典大小

Python025

Python 比较两个字典大小,第1张

学习 Python 时,遇到看到菜鸟教程里的 cmp() 方法,衍生出这篇文章。但是后来和朋友讨论,感觉在实际应用中极少有用到比较字典大小的场景。不过能搞懂一个知识点,还是很开心的。

cmp(dict1, dict2) 比较两个字典大小的方法:先比字典长度,若相等就比 key 值,若再相等就比 value。

但是这个方法已经被 Python 3 取消了。

请参考: Python2 用 cmp() 比较字典大小 , Python3 为什么取消了 __cmp__ 方法

operator 模块提供了一系列方法比较两个字典大小,详细方法及使用示例请参考: Python3 使用 operator 模块比较字典大小 。

但是在写法上我们要注意,最好用 String 内置的方法,这样利于对空值的判断:

结果如下:

cmp( x, y)

Compare the two objects x and y and return an integer according to the outcome. The return value is negative if x <y, zero if x == y and strictly positive if x >y.

比较2个对象,前者小于后者返回-1,相等则返回0,大于后者返回1.

numbers.sort这种用法是错误的,如果你想要排序,则用如下语句:

num_sort=sorted(numbers,key=None,reverse=False)

新的list num_sort才是一个排序后的列表。然后,你自定义的cmp过程只能对比两个数字,而能对比列表中的各个元素,python3解释器不知道你要做什么,所以才会出错。