假设:
if parse_rec[i] != col_data:
parse_rec[i] = col_data
data_changed = True
print str(i)
print str(parse_rec[i])
print str(col_data)
print type(parse_rec[i])
print type(col_data)
print len(parse_rec[i])
print len(col_data)
print parse_rec[i] != col_data
我明白了:
10
1037864
1037864
<type 'str'>
<type 'str'>
7
7
False
如果我将测试更改为:
if str(parse_rec[i]) != str(col_data):
它按预期工作,并且&#39; if&#39;条件失败(它们是相同的)并且没有打印。 str()在做什么?我为什么需要它?我不相信Python中的任何字符串比较吗?
我已经验证了。我的文件中没有标签。
答案 0 :(得分:1)
如果,例如, parse_rec[i]
最初包含数字10
,而col_data
包含字符串'10'
。 str
将任何Python对象转换为字符串表示形式;转换它们(其中一个已经是一个字符串)将使它们相等。
答案 1 :(得分:-1)
您的两个数据是字符串,可以安全地与(language => "es")
运算符进行比较。
==
做了什么:
返回一个包含对象的可打印表示的字符串。对于字符串,这将返回字符串本身。
如果您有一个整数和一个字符串,则需要str()
:
str()