首页 > 解决方案 > 用字典列出

问题描述

想象一下,我有这个列表:

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')

这种类型的代码行不通,对吧?那么我该如何解决第二步(在第一步之后)?

标签: python

解决方案


你可以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:


推荐阅读