繁体   English   中英

使用列表理解切片列表

[英]Slicing a list using List Comprehension

假设我要从1到20的20个整数,将它们放在列表中,然后对每4个元素进行分组。 所以我尝试了:

[(k[i::4]) for i in range(1,20)]

理论上,我想做的是在1到20的范围内,将i与步骤4附加到列表k中

它看起来应该像[[1,2,3,4],[5,..,8]..[9,..,12].[13,..,16]...[17,..,20]

您可以简单地创建更多range对象:

>>> [list(range(i, i+4)) for i in range(1, 21, 4)]
[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16], [17, 18, 19, 20]]
>>>[list(range(i,i+4)) for i in range(1, 20, 4)]
[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16], [17, 18, 19, 20]]

请尝试以下操作:

>>> k = range(0, 21)
>>> [[k[i:i+4] for i in range(1, 20, 4)]][0]
[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16], [17, 18, 19, 20]]
>>> 
>>> k = range(1, 21)
>>> list(zip(*[iter(k)] * 4))
[(1, 2, 3, 4), (5, 6, 7, 8), (9, 10, 11, 12), (13, 14, 15, 16), (17, 18, 19, 20)]

暂无
暂无

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

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