我有两个包含数据的列表,因为我正在读取两个文件并存储到列表中。
我应该使用cmp(list1,list2)还是(list1 == list2)
#! /usr/bin/env py
data = None
with open("sample",'r+') as f:
data = f.readlines()
data[-1] = "abhishe"
data_1 = None
with open("cp.log",'r+') as f:
data_1 = f.readlines()
data_1[-1] = "Goswami"
print "\n\n\n"
print data == data_1
print cmp(data,data_1)
答案 0 :(得分:5)
您很少需要使用cmp
。 cmp
与测试<
,==
和>
具有相同的效果,但它的可读性较差。
在您的情况下,使用==
,因为它将执行深度列表相等性测试。
答案 1 :(得分:4)
如果您只对他们的相等感兴趣,那么我会说使用相等运算符==
。
cmp()
函数提供的信息略有不同,as the documentation describes:
cmp()
- 比较两个对象x和y并根据结果返回一个整数。返回值为:
- 如果x&lt;则为负。 y
- 如果x == y
则为零 如果x&gt;- 严格为正年。
在您的情况下,“预期”结果将为零,这是一个假值,如果您实际测试的是相等的话,这不是直观的。