簡體   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