在For循环中生成列表列表

2024-10-01 15:39:31 发布

您现在位置:Python中文网/ 问答频道 /正文

如何在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

正如预期的那样,我得到的输出是一个很长的对列表。它看起来有点像以下内容:

^{pr2}$

我想把这个配对列表变成成对列表。有1268次迭代,每个列表的长度应该是12次。(所以1268列出了每个元素中的12个元素)。在循环中如何处理这个问题有什么想法吗?在


Tags: 代码in元素列表forlenifrange
3条回答

我马上有几个友好的建议:

  1. 首先,一开始的a=0是多余的。你做 在第一个for循环中,a=0两次相同。

  2. 第二,为什么要为xy at声明一个庞大的列表元素框架 顶部?您可以随时追加()所需的内容 一路走来。

  3. 最后,while循环只是一个简单的for循环:

    for n in range(len(catid)):
    

也许是这样吧。请注意,我直接在列表上使用迭代来保存大量不必要的索引。在

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)

如果您使用内部循环只是为了搜索类别索引,就像我怀疑的那样,字典可能是避免内部循环的有用补充。在

您可以使用如下列表扩展创建列表列表:

list_of_lists = [[j for j in range(0, 3)] for _ in range(0, 3)]

输出3x3列表:

^{pr2}$

相关问题 更多 >

    热门问题