6

我有两个list,每个都包含从文件中读取的内容。

我应该使用cmp(list1,list2)or(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)
4

2 回答 2

7

您将很少需要使用cmp. 与 testing和cmp具有相同的效果<,但可读性较差。==>

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

于 2013-09-07T15:41:51.480 回答
5

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

如文档所述,该cmp()函数提供的信息略有不同:

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

  • 如果 x < y,则为负
  • 如果 x == y,则为零
  • 如果 x > y,则严格为正。

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

于 2013-09-07T15:42:53.437 回答