繁体   English   中英

在for循环的每个迭代中追加新列表

[英]Append new list every iteration of the for loop

每当我进入for循环时,我都想以某种方式追加到新列表中。 目前我有:

A=[ ] 
B = [ ]
C = [ ]

For i in range (1, 4):
   if i == 1:
        A.append(x)
   if i == 2:
        B.append(x)
   ...

等等。 我正在寻找一种更简便的方法,因为它是如此的硬编码。

您可以简单地使用列表列表:

>>> A=[ ]
>>> B = [ ]
>>> C = [ ]
>>> allLists =[A,B,C]
>>> X=range(10,20)
>>> for i,j in enumerate(X):
...   allLists[i%len(allLists)].append(j)
...
>>> A,B,C
([10, 13, 16, 19], [11, 14, 17], [12, 15, 18])

另一种方法是使用切片:

>>> def chunk(l,n):
...  result=[]
...  for i in range(n):
...    result.append(l[i::n])
...  return result
...
>>> A,B,C=chunk(X,3)
>>> A,B,C
([10, 13, 16, 19], [11, 14, 17], [12, 15, 18])
>>> A,B,C,D=chunk(X,4)
>>> A,B,C,D
([10, 14, 18], [11, 15, 19], [12, 16], [13, 17])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM