Python检查字符串是否包含字典的任何键

标签 python python-3.x

给出示例字典:

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/

相关文章:

python - 向内置函数添加方法

python-3.x - TensorFlow 训练模型预测始终为零

python-3.x - Kubernetes Python 客户端连接问题

python - sklearn中K-Fold交叉验证中每个折叠的预测值

Python:如何写这个 "pythonic way"?

python-3.x - 如何使 cv2.videoCapture.read() 更快?

python http 客户端卡在 100 继续

python - pandas 或 python 相当于 tidyr complete

python - 如何将SqlAlchemy结果序列化为JSON?

python - 读入数组时忽略字符串