[英]How to print name of a list found from a list of lists?
我正在嘗試這個程序告訴我在哪個列表中我可以找到我正在尋找的“部分”或值。 我需要獲取找到該部件的列表的名稱。 每個列表都是部件的位置,我制作了一個列表列表,以循環遍歷它。
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]
編輯:感謝所有建議使用字典的人。 我會這樣做,但是有沒有辦法用循環創建字典? 我將處理幾百個列表,因此手動創建字典將非常耗時。
你可以使用字典:
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
來檢查列表中是否存在元素在內部使用循環,因此您不必像當前那樣顯式檢查每個元素。
正如@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("")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.