python - 用字典列出
问题描述
想象一下,我有这个列表:
a=[ {'name':'John','number':'123'} , {'name':'Mike','number':'12345'} ,{'name':'Peter','number':'12'}]
name=input('insert your name')
number=input('insert your number')
如果我想有 3 种情况:一种是名称和号码匹配,第二种是名称正确但号码不正确,最后一种是名称不存在。
if {'name':name,'number':number} in a:
print('okay')
else:
if {'name':name} in a and {'number':number} not in a:
print('user okay, but incorrect pass')
else:
print('No username')
这种类型的代码行不通,对吧?那么我该如何解决第二步(在第一步之后)?
解决方案
你可以any
这样使用:
if {'name':name,'number':number} in a:
print('okay')
elif any(entry["name"] == name for entry in a):
print('user okay, but incorrect pass')
else:
print('No username')
我还简化了您else: if:
的使用elif:
。
推荐阅读
- semantic-versioning - 如果行为保持不变,更改函数返回的类型是否构成向后不兼容的更改?
- excel - 如何修复运行时错误 6124“您不能编辑此选择,因为它受到保护”
- html - 我如何知道可变高度内容的背景图像的大小?
- javascript - 根据起始坐标和预定义角度在javascript中获取结束线坐标
- sql - where 子句中每个键的默认值
- c++ - 参数包中的过滤器类型
- excel - 如何修复表格中错误的标题行
- google-cloud-spanner - 如何在 Spanner 中订购 ARRAY
- java - 如何使用 Deezer Android SDK 进行正确的用户授权?
- vue.js - 如何更改 @nuxtjs/axios 中的 axios 日期格式?