使用cmp或==比较列表

时间:2013-09-07 15:40:16

标签: python

我有两个包含数据的列表,因为我正在读取两个文件并存储到列表中。

我应该使用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)

2 个答案:

答案 0 :(得分:5)

您很少需要使用cmpcmp与测试<==>具有相同的效果,但它的可读性较差。

在您的情况下,使用==,因为它将执行深度列表相等性测试。

答案 1 :(得分:4)

如果您只对他们的相等感兴趣,那么我会说使用相等运算符==

cmp()函数提供的信息略有不同,as the documentation describes

  

cmp() - 比较两个对象x和y并根据结果返回一个整数。返回值为:

     
      
  • 如果x&lt;则为负。 y
  •   
  • 如果x == y
  • 则为零   如果x&gt;
  • 严格为正年。
  •   

在您的情况下,“预期”结果将为零,这是一个假值,如果您实际测试的是相等的话,这不是直观的。