6

listファイルからの読み取りをそれぞれ含む2 つがあります。

またはを使用する必要があります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)
4

2 に答える 2

7

を使用する必要はほとんどありませんcmp。、およびcmpをテストするのと同じ効果がありますが、読みにくくなります。<==>

あなたの場合、==深いリストの等価性テストを実行するので使用します。

于 2013-09-07T15:41:51.480 に答える
5

それらの等価性のみに関心がある場合は、等価演算子を使用することをお勧めします==

ドキュメントで説明されているようにcmp()関数はわずかに異なる情報を提供します。

cmp()- 2 つのオブジェクト x と y を比較し、結果に応じて整数を返します。戻り値は次のとおりです。

  • x < y の場合は負
  • x == y の場合はゼロ
  • x > y の場合は厳密に正です。

あなたの場合、「期待される」結果はゼロ、つまり偽の値になります。これは、実際に等しいかどうかをテストしている場合、直感的ではありません。

于 2013-09-07T15:42:53.437 に答える