python - 如何编写检查给定字符串是否在值中并返回键的python函数
问题描述
我正在尝试清理数据并尝试实施字典。
States = {'DC':['WashingtonDC','washingtonDC','D C'],'NC':['NorthCarolina', 'North Carolina', 'N C']}
有没有办法编写将状态作为参数并从状态返回键的python函数。例如 checkstates('WashingtonDC') 返回 'DC,因为它在它的值中。
解决方案
最简单的是:
def checkstates(variant):
return next(k for k in States if variant in States[k])
如果迭代器为空(没有状态匹配),您可以为 提供默认值next
:
return next((k for k in States if variant in States[k]), "Not found!")
如果你要重复使用这个函数,创建一个辅助数据结构来进行查找是有意义的O(1)
:
reverse_states = {v_inner: k for k, v in States.items() for v_inner in v}
def checkstates(variant):
return reverse_states.get(variant, "Not found!")
推荐阅读
- windows - Git for Windows 无法解决路径地址中的反斜杠“\”
- flutter - 颤动:等待按钮卡的飞溅效果点击
- sql - SQL Server:从第二个表插入第一个表中具有匹配条件的每个唯一值
- python - 当我尝试使用函数时 discord.py 中的错误
- django - django:如何将照片字段添加到用户:用户()得到了一个意外的关键字参数
- javascript - 使用来自多个 txt 文件的数据并显示在 html 文件上的 Javascript 表
- c# - 如何在 C# 数组或列表中找到拐点?
- javascript - 嵌套循环中的Vue数据(this.numberOfBars)超出范围
- java - 直接增加 double 的指数以乘以 2 的幂
- c# - 使用 C# 从 url 下载 .webp 图像