2013-10-14 38 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