给出示例字典:
LANGUAGE_TO_ISO = {
"en": "en",
"eng": "en",
"english": "en",
"es": "es",
"spanish": "es",
...
}
以及给定的示例字符串:
book_title = "The Dark Tower - english"
book_title = "The Dark Tower - eng"
book_title = "The Dark Tower 2 - english 2nd edition"
是否有一个我不知道的 Python 函数可以搜索字符串是否包含任何字典键,然后返回相应的值,而无需在 ISO 字典中循环?
这样,我就可以从语言的多种不同编写方式中提取 ISO 语言。
如果有人知道一种不太肮脏的方法,请分享:)
更新: 正如威廉提到的,忘记指定“英语”、“英语”、“西类牙语”等将由单词分隔。点、逗号、连字符、空格...
最佳答案
我不知道这是否是最佳方式,但我有一个循环,但它非常紧凑:
def has_key_in(dictionary, string):
return any(k in string for k in dictionary)
如果我没记错的话,优点是 any
在第一次遇到 True
条件时停止。
现在的问题是你没有对应的值...
关于Python检查字符串是否包含字典的任何键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52590564/