我正在尝试执行该程序,该程序告诉我可以在哪个列表中找到所需的“零件”或值。我需要获取在其中找到零件的列表的名称。每个列表都是零件的位置,我制作了一个列表列表,以循环遍历所有列表。
list1=[1,5,8,3,9]
list2=[18,56,82,31,91]
list3=[10,51,2,4,70]
lists=[list1, list2, list3]
def lookPart():
part = int(input("What part are you looking for? "))
for l in lists:
for i in l:
if i==part:
print("Your part is here: ", l)
while 1:
lookPart()
print("")
假设我正在寻找第5部分:
我希望它能打印:
您的位置在这里:list1
但是我得到了:
您的位置在这里:[1,5,8,3,9]
编辑:谢谢所有建议使用字典的人。我会这样做,但是有没有办法使用循环创建字典?我将处理数百个列表,因此手动制作字典将非常耗时。
答案 0 :(得分:2)
您可以使用字典:
list_dict = {'list_1': [1,5,8,3,9], 'list_2': [18,56,82,31,91], 'list_3': [10,51,2,4,70]}
search_value = int(input('What value are you looking for? '))
for key, value in list_dict.items():
if search_value in value:
print(f'Your search value of {search_value} was found in {key} i.e. {value}')
用法示例:
What value are you looking for? 5
Your search value of 5 was found in list_1 i.e. [1, 5, 8, 3, 9]
注意:使用in
来检查列表中是否存在某个元素会在内部使用循环,因此您不必像当前所做的那样显式检查每个元素。
答案 1 :(得分:1)
@pault建议;下面是脚本。使用列表名称作为关键字,将所有列表放入字典中。然后打印键而不是值。
list1=[1,5,8,3,9]
list2=[18,56,82,31,91]
list3=[10,51,2,4,70]
lists={'list1':list1, 'list2':list2, 'list3':list3}
def lookPart():
part = int(input("What part are you looking for? "))
for k, l in lists.items():
for i in l:
if i==part:
print("Your part is here: ", k)
while 1:
lookPart()
print("")