我正在尝试在列表中搜索字符串。它们看起来完全一样,但是为什么不相等呢?
l = ['liệu',]
a = bytes(l[0],encoding='utf-8')
print(a)
i = 'liệu'
print(bytes(i,encoding='utf-8'))
print(i==l[0])
当前输出:
b'li\xc3\xaa\xcc\xa3u'
b'li\xe1\xbb\x87u'
False
我们如何使其True
?
答案 0 :(得分:1)
将第一个ệ
的{{1}}复制粘贴到第二个"liệu"
中,反之亦然。那应该确保两个都是彼此的精确副本。绝对应该为您提供以下输出:
"liệu"
希望这会有所帮助!
答案 1 :(得分:0)
从字节表示中可以看到,它们都是不同的字符串:
>>> a = 'liệu'
>>> b = 'liệu'
>>> a == a
True
>>> b == b
True
>>> a == b
False
它们在第三个字母后不同:
>>> for l1, l2 in zip(a, b):
... print(l1 == l2)
...
True
True
False
False
这并不意味着u
是不同的,但是可以肯定的是e
是
答案 2 :(得分:0)
>>> 'ệ'=='ệ'
False
为什么这样?因为它们是不同的字符,但外观相同,所以可以检查unicode table中的两个字符,您会发现它们具有不同的Unicode。
我和您以前遇到过同样的问题,您可以访问我的issue page