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

标签 python python-3.x list match

为什么在 Python 3 中返回 False?有什么办法让它返回True?

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

print(e in l)

enter image description here

最佳答案

比较 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

关于python - 匹配 Python 3 中字符串列表中的重音字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52994408/

相关文章:

python netcdf : making a copy of all variables and attributes but one

python - 在 Python 中,如何检查一个项目列表是否只属于两个列表中的一个?

python - 如何将一个字符与 Python 中某个字符串中的所有字符进行比较?

python - 无法使用 python 将文本作为 UTF-8 写入文件

python - 对字符串查找感到困惑?

python - 从 NodeJS 调用 Python 函数

python - 模逆计算卡住了

python - 我们如何访问列表中的多个字典?

python - 从字典中调用函数

java - Spring 批处理 : reading a csv file and modify this list before putting the results in another file