匹配Python 3中字符串列表中的重音字符串

时间:2018-10-25 16:51:05

标签: python python-3.x list match

为什么在Python 3中它返回False?怎样使它返回True?

e = "allé.png"
l = ["allé.png"]

print(e in l)

enter image description here

1 个答案:

答案 0 :(得分:2)

比较unicode时,您应该使用unicodedata对数据进行规范化。如果您打算在较大的列表中进行搜索,则可以使用map或列表理解:

import unicodedata
from functools import partial

normalize = partial(unicodedata.normalize, 'NFC')

e = "allé.png"
e = normalize(e)
l = ["allé.png"]
print(e in map(normalize, l))

输出

True

或者作为替代:

print(e in [normalize(s) for s in l])

进一步

  1. What does unicodedata.normalize do in python?
  2. Normalizing Unicode