使用cmp或==比较列表

use*_*443 5 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)
Run Code Online (Sandbox Code Playgroud)

nne*_*neo 6

你很少需要使用cmp.cmp与测试具有相同的效果<,==>,但它是更少可读.

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


Lix*_*Lix 5

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

cmp()功能提供的信息略有不同,如文档所述

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

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

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