python - Python在列表中的字典中查找值
问题描述
我正在尝试True
使用values()
for 方法返回480-888-0050
,该方法位于contacts
字典内的列表中,但它似乎没有深入到 key 的列表中Mike
。
contacts = {
'Ingemar': '480-555-7777',
'Mike': ['480-888-0050', '480-555-5555']
}
print('480-555-7777' in contacts.values())
print('480-888-0050' in contacts.values())
print(contacts.values())
输出:
True
False
dict_values(['480-555-7777', ['480-888-0050', '480-555-5555']]) <<< clearly sees the values
进程以退出代码 0 结束
有人可以帮我弄这个吗?
解决方案
您可以编写一个尝试以str
不同方式处理的函数list
def contains(element, value):
if isinstance(value, str):
return element == value
elif isinstance(value, list):
return element in value
return False
然后你可以在生成器表达式中使用这个函数any
>>> any(contains('480-555-7777', value) for value in contacts.values())
True
>>> any(contains('480-888-0050', value) for value in contacts.values())
True
推荐阅读
- wso2 - 从后端接收数据时出现 JSON 有效负载错误
- jquery - 如果元素被缩放,则使用 Jquery 可拖动捕捉功能定位未对齐
- javascript - 遍历嵌套的对象数组,匹配另一个对象数组
- c# - C# FileSystemWatcher 事件未触发
- python - Python 中的 imabsdiff() - 不同的输出
- solr - Solr 7 和 ICUFoldingFilterFactory
- javascript - Vue.js Fullcalendar on date click
- vue.js - NavieScript + Vue 渲染 40 行占用太多,如何加快速度?
- ios - Swift/iOS13 - 在 ViewController 中访问 SceneDelegate 窗口变量
- excel - 防止我的宏陷入循环