可能重复:
如何在Python中将列表拆分为大小均匀的块?
python:将"5,4,2,4,1,0"转换为[[5,4],[2,4],[1,0]]
[1,2,3,4,5,6,7,8,9]
Run Code Online (Sandbox Code Playgroud)
- >
[[1,2,3],[4,5,6],[7,8,9]]
Run Code Online (Sandbox Code Playgroud)
是否有简单的方法来做到这一点,没有明确的'for'?
jam*_*lak 63
>>> x = [1,2,3,4,5,6,7,8,9]
>>> zip(*[iter(x)]*3)
[(1, 2, 3), (4, 5, 6), (7, 8, 9)]
Run Code Online (Sandbox Code Playgroud)
如何zip(*[iter(s)]*n)
在Python 中工作?
the*_*olf 15
如果你真的想要子元素是列表与元组:
In [9]: [list(t) for t in zip(*[iter(range(1,10))]*3)]
Out[9]: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Run Code Online (Sandbox Code Playgroud)
或者,如果要包含将被截断的左侧元素zip
,请使用切片语法:
In [16]: l=range(14)
In [17]: [l[i:i+3] for i in range(0,len(l),3)]
Out[17]: [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11], [12, 13]]
Run Code Online (Sandbox Code Playgroud)
你也可以numpy.reshape
在这里使用:
import numpy as np
x = np.array([1,2,3,4,5,6,7,8,9])
new_x = np.reshape(x, (3,3))
Run Code Online (Sandbox Code Playgroud)
结果:
>>> new_x
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
Run Code Online (Sandbox Code Playgroud)
>>> map(None,*[iter(s)]*3)
[(1, 2, 3), (4, 5, 6), (7, 8, 9)]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
28598 次 |
最近记录: |