Python 在列表中查找和打印项目?
我希望从列表中提取东西并打印出来,就像数据库一样。如何打印用户要求的内容Python 在列表中查找和打印项目?,python,list,python-3.x,Python,List,Python 3.x,我希望从列表中提取东西并打印出来,就像数据库一样。如何打印用户要求的内容 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() 使用if as
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()
使用if askName in name
可以检查askName
是否在name
列表中。如果是,您可以使用index()
获取索引,并使用它访问ages
列表中的值。为一个时代取名字也是这样
使用
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
您可以使用字典:
#!/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
输出是什么?如果我问你叫什么名字“约翰”,你会把“约翰”还给我吗?“你的学生约翰23岁了”约翰和萨姆是什么类型的物体。这些不是字符串,它们是某种
Person
对象吗?如果它们是一个对象,它们可能会有一个属性来存储年龄,因此您可以只拥有一个Person
对象的列表,而不是两个平行列表。如果存在多个匹配项,例如按年龄搜索,并且有3个年龄相同的人,会有什么输出?如果我问你叫什么名字“约翰”,你会把“约翰”还给我吗?“你的学生约翰23岁了”约翰和萨姆是什么类型的物体。这些不是字符串,它们是某种Person
对象吗?如果它们是一个对象,它们可能会有一个属性来存储年龄,因此您可以只拥有一个Person
对象列表,而不是两个平行列表。如果有多个匹配项,例如,按年龄搜索,有3个年龄相同的人?应该指出,这将返回指定值第一次出现的索引。如果学生的姓名/年龄相同,则可能会产生错误的输出。@i错了。但是如果有同名同龄的学生,就没有办法知道谁是谁。那样的话,你需要一些身份证。是的,有。可以使用手动for循环返回所有匹配项。@i否则您仍不知道正确的值是多少。假设我们有['Katy','Katy']
和[23,51]
。Katy的年龄有多大?应该指出,这将返回指定值第一次出现的索引。如果学生的姓名/年龄相同,则可能会产生错误的输出。@i错了。但是如果有同名同龄的学生,就没有办法知道谁是谁。那样的话,你需要一些身份证。是的,有。可以使用手动for循环返回所有匹配项。@i否则您仍不知道正确的值是多少。假设我们有['Katy','Katy']
和[23,51]
。凯蒂多大了?