Python字符串比较失败,但是如果接受

时间:2015-11-11 15:20:28

标签: python string

假设:

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中的任何字符串比较吗?

我已经验证了。我的文件中没有标签。

2 个答案:

答案 0 :(得分:1)

如果,例如, parse_rec[i]最初包含数字10,而col_data包含字符串'10'str将任何Python对象转换为字符串表示形式;转换它们(其中一个已经是一个字符串)将使它们相等。

答案 1 :(得分:-1)

您的两个数据是字符串,可以安全地与(language => "es")运算符进行比较。

==做了什么:

  

返回一个包含对象的可打印表示的字符串。对于字符串,这将返回字符串本身。

如果您有一个整数和一个字符串,则需要str()

str()