Python比较字符串实际上返回时不相等

时间:2019-02-20 22:44:38

标签: python string

我有一个字典(B),其中的值是一个列表。这段代码没有给我预期的结果:

print(type(B[Bkey][1]))
print(type(B[Bkey][6].upper()+' '+B[Bkey][7].upper()))
print(B[Bkey][1])
print(B[Bkey][6].upper()+' '+B[Bkey][7].upper())
print(B[Bkey][6].upper()+' '+B[Bkey][7].upper() == B[Bkey][1])
print(B[Bkey][6].upper()+' '+B[Bkey][7].upper().strip() == B[Bkey][1].strip())

这是打印输出:

<class 'str'>
<class 'str'>
MY STRING
MY STRING
False
False

奇怪的是,字典很大(大约3000个项目),并且大多数项目的比较结果相同,但返回TRUE,但其中一些项目返回FALSE?

请帮助。

1 个答案:

答案 0 :(得分:0)

感谢您的回答。发布问题后,我意识到也许字符串中的空格是问题。所以我尝试了以下方法:

print((B[Bkey][6].upper()+' '+B[Bkey][7].upper()).split(' '))
print(B[Bkey][1].split(' '))

得到了:

['MY', 'STRING']
['MY\xa0STRING']

快速搜索得出以下答案:

string = string.replace(u'\xa0',u'')