2013-10-14 39 views
1

你好,我正在嘗試在列表中打印一個列表的名字。我嘗試了以下,但我所能做的就是在列表中打印列表的值。列表中的不是名稱:在列表中打印一個列表的名稱

list1 = [1,2,3] 
list2 = [1,2] 
list3 = [1,2,3,4] 
lists = [list1,list2,list3] 

for x in lists: 
    if len(x) == 4: 
    print (x) 
+2

列表元素沒有名稱,他們有位置。 – Matthias

+0

列表中沒有固定名稱,因爲您可以將其名稱分配給任何內容。它不清楚你的問題,你在問什麼。 –

+0

@GamesBrainiac他似乎很清楚他正在尋找一個字典或鍵/值結構,在那裏他可以得到密鑰的名稱。 – Kjartan

回答

4

使用這裏dictionary

>>> dic = {'list1': range(1, 4), 'list2':range(1, 3), 'list3':range(1, 5)} 
>>> for k, v in dic.items(): 
...  if len(v) == 4: 
...   print k 
...   
list3 

使用,因爲這根本任務,以創建三個列表對象的新引用lists = [list1,list2,list3]不會在這裏工作。

>>> lists[0] is list1 
True 

所以,對象[1,2,3]現在有兩個參考list1lists[0]

+0

感謝您的幫助 – Mark

0

這是不可能的。 您可能需要考慮使用dict並將名稱用作鍵並將該列表設置爲值。

+0

感謝您的幫助 – Mark

1

是的,你可以做但沒有列表。你最好使用字典[dictinary]。一個字典是python中的哈希結構,其中的鍵和值與鍵相關聯。使他們成爲鍵值對。
一般列表會像

d = {'one':1,'two':2} 

其可以像打印d [酮]其中打印「1」被訪問;

對於你的情況,我們可以使用相同的字典的...

d = {'list1': list1,'list2': list2,'list3': list3} 

,當所謂的像打印d [列表1]打印所有列表1中的元素。 :)

+0

感謝您的幫助 – Mark