在列表中查找和打印项目?

2024-04-24 14:10:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望从列表中提取一些东西并打印出来,就像一个数据库一样。如何打印用户要求的内容?你知道吗

name = [John, Sam]
ages = [23, 7]
answer = input("Search by (n)ame or (a)ge")
if answer == "n":
    askName= input("what name?")
    # ?????
elif answer == "a":
    askAge = input("what age")
else start()

Tags: or用户answername数据库内容列表input
2条回答
name = ['John', 'Sam']
ages = [23, 7]
answer = input("Search by (n)ame or (a)ge")
if answer == "n":
    askName= input("what name?")
    if askName in name:
        print(ages[name.index(askName)])
elif answer == "a":
    askAge = input("what age")
    if askAge in ages:
        print(name[ages.index(askAge)])

使用if askName in name可以检查askName是否在name列表中。如果是,您可以使用index()获取索引,并使用它访问ages列表中的值。取一个年龄的名字也是这样。你知道吗

您可以使用字典:

#!/usr/bin/python
userlist = [
    {'name':'John', 'age':23},
    {'name':'Sam', 'age':7},
    {'name':'Anna', 'age':7},
    {'name':'John', 'age':10},
]

answer = input("Search by (n)ame or (a)ge")
if answer == "n":
    askName= input("what name?")
    for i in userlist:
        if i['name'] == askName:
            print('name: '+askName+', age: '+str(i['age']))
elif answer == "a":
    askAge = input("what age")
    for i in userlist:
        if i['age'] == int(askAge):
            print('name: '+str(i['name'])+', age: '+askAge)

学生可以有相同的姓名和年龄,因此输出如下:

Search by (n)ame or (a)gen
what name?Sam
name: Sam, age: 7

Search by (n)ame or (a)gea
what age7
name: Sam, age: 7
name: Anna, age: 7

为了避免这种情况,您可以按ID选择学生:

#!/usr/bin/python
userlist = [
    {'name':'John', 'age':23},
    {'name':'Sam', 'age':7},
    {'name':'Anna', 'age':7},
    {'name':'John', 'age':10},
]

answer = input("Search by (n)ame or (a)ge or (i)d\n")
if answer == "n":
    askName= input("what name?\n")
    for i in userlist:
        if i['name'] == askName:
            print('name: '+askName+', age: '+str(i['age']))
elif answer == "a":
    askAge = input("what age?\n")
    for i in userlist:
        if i['age'] == int(askAge):
            print('name: '+str(i['name'])+', age: '+askAge)
elif answer == "i":
    askId = input("what id?\n")
    print('id: ' + askId + ',name: '+str(userlist[int(askId)]['name'])+', age: '+str(userlist[int(askId)]['age']))

输出:

Search by (n)ame or (a)ge or (i)d
i
what id?
1
id: 1,name: Sam, age: 7

相关问题 更多 >