0

我正在使用 python 2.7 我试图找出一种自动更改列表名称的方法。

让我解释一下我有多个列表

list1 = [1, 2, 3, 4, 5] 
list2 = [4, 5, 9, 3]
list3 = [8, 4, 3, 2, 1]

我想在循环中调用列表以确定哪些列表包含或不包含特定数字。

我的第一个想法是

x = "list" + str(i) # (where i iterates in the loop)
print x

但是,使用上面的代码只给了我字符串“list1”(当 i=1 时)。

我想要的是能够调用名为 list1 的列表并使用 .count() 运算符来确定该数字是否存在,如果我不想调用下一个列表,直到我不在列表中(最终将有多达 30 个列表)。

谢谢,

瑞安

4

2 回答 2

0

你不应该这样接近它。将您的列表放在一个容器中以迭代它们:

In [5]: for l in (list1, list2, list3):
   ...:     print l.count(2)
   ...:     
1
0
1

在现实生活用例中,您可以做的是创建一个列表列表并动态填充它。

然后要获取包含给定数字的第一个列表,您可以执行以下操作:

In [6]: lists = [list1, list2, list3]

In [7]: next(l for l in lists if 9 in l)
Out[7]: [4, 5, 9, 3]
于 2013-05-30T22:39:25.323 回答
0

将列表放入字典中:

list1 = [1,2.4]
list2 = [2,5,6]
dlist = {1:list1,2:list2}
for k in dlist:
   print dlist[k]
于 2013-05-30T23:24:18.307 回答