在For循环中列出列表
问题描述:
如何在for
循环中创建列表的列表?在For循环中列出列表
以下是我已经编写现在:
a = 0
xy=[[[],[]],[[],[]],[[],[]],[[],[]],[[],[]],[[],[]],[[],[]],[[],[]],[[],[]],[[],[]],[[],[]],[[],[]]]
for liness in range(len(NNCatelogue)):
a=0
for iii in range(len(NNCatelogue[liness])):
while a < len(catid):
if catid[a]==NNCatelogue[liness][iii]:
xyiii = (catid[a], a)
xy.append(xyiii)
a += 1
,我得到的是对的一长串,如预期的输出。它看起来有点像下面这样:
[...,('C-18-1262', 30908),
('C-18-1264', 30910),
('C-18-1265', 30911),
('C-18-1267', 30913),
('C-18-1250', 30896),
('C-18-1254', 30900),...]
我想将这个对列表变成列表对的列表。有1268次迭代,每个列表的长度应该是12.(因此1268个列表中每个列表中包含12个元素)。在循环中如何处理这个问题的任何想法?
答
也许是这样的。请注意,我直接对列表使用迭代来节省大量不必要的索引。
xy = []
for line in NNCatelogue:
l = []
for c in line:
for a, ca in enumerate(catid):
if ca == c:
l.append((ca, a))
xy.append(l)
如果您使用内循环只是以搜索类指标,我怀疑你是,一本字典可能是一个有益的补充,以避免内循环。
答
我有几个建议,友好马上蝙蝠:
所有的首先,在最开始的A = 0是多余的。在第一个for循环中,您使用a = 0两次执行 相同的事情。
二,为什么你要声明一个巨大的xy列表元素框架,在 顶部?随着您沿着 行进,您总是可以追加()您需要的东西。
-
最后,while循环只是一个简单的for循环:
for n in range(len(catid)):
答
您可以用列表扩展,像这样一个列表的列表:
list_of_lists = [[j for j in range(0, 3)] for _ in range(0, 3)]
,其输出3x3列表:
[ [0, 1, 2],
[0, 1, 2],
[0, 1, 2]
]
'while'循环看起来有点无限......你没有显示你增加“a”的位置。 – nneonneo
我编辑了代码。对于那个很抱歉! – user1620716
什么是catid和NNCatelogue?名单?最好创建简短的,自包含的,可运行的示例。 –