簡體   English   中英

如何打印從列表列表中找到的列表名稱?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM