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)
4

3 回答 3

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

Usinglists = [list1,list2,list3]在这里不起作用,因为这个赋值只是创建了对三个列表对象的新引用。

>>> lists[0] is list1
True

因此,该对象[1,2,3]现在有两个引用list1lists[0].

于 2013-10-14T10:35:13.770 回答
1

是的,您可以这样做,但不能使用列表。你最好使用 dict [字典]。字典是python中的哈希结构,其键和值与键相关联。使它们成为键值对。
通常列表会像

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

可以像打印 '1' 的 print d[one] 一样访问它;

对于您的情况,我们可以使用与...相同的字典。

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

当像 print d[list1] 这样调用时,它会打印 list1 的所有元素。:)

于 2013-10-14T10:48:28.117 回答
0

这是不可能的。您可能需要考虑使用dict并将名称用作键并将列表设置为值。

于 2013-10-14T10:37:00.957 回答