我有一个列表
[1,2,3,4,5,6,7,8]
欲将此转换为[[1,2, 3,4] [5,6,7,8]]在蟒蛇。有人可以帮我解决这个Python的转化一个维阵列成二维阵列
0
A
回答
5
要采取输入:
def chunks(l, n):
return [l[i:i+n] for i in range(0, len(l), n)]
mylist = [1,2,3,4,5,6,7,8]
while 1:
try:
size = int(raw_input('What size? ')) # Or input() if python 3.x
break
except ValueError:
print "Numbers only please"
print chunks(yourlist, size)
打印:
[[1, 2], [3, 4], [5, 6], [7, 8]] # Assuming 2 was the input
甚至:
>>> zip(*[iter(l)]*size) # Assuming 2 was the input
[(1, 2), (3, 4), (5, 6), (7, 8)]
+0
为什么标准库中不是“块”?我经常需要它... – djeendo
3
您可以使用itertools.islice
:
>>> from itertools import islice
def solve(lis, n):
it = iter(lis)
return [list(islice(it,n)) for _ in xrange(len(lis)/n)]
...
>>> solve(range(1,9),4)
[[1, 2, 3, 4], [5, 6, 7, 8]]
>>> solve(range(1,9),2)
[[1, 2], [3, 4], [5, 6], [7, 8]]
2
还有一种numpy的方式(如果你的列表是统一的数字或字符串列表等)。
import numpy
a = numpy.array(lst)
nslices = 4
a.reshape((nslices, -1))
相关问题
- 1. 从二维阵列到一维阵列?
- 2. 匹配二维阵列与一个二维阵列
- 3. 将一维字节阵列转置为二维阵列
- 4. 二维阵列
- 5. 二维阵列
- 6. 二维阵列
- 7. 二维阵列
- 8. 初始化一个二维阵列
- 9. 二维阵列在一个维度[1]
- 10. 二维旋转阵列
- 11. 将二维单元阵列转换为三维阵列
- 12. 将三维阵列转换为二维阵列
- 13. 无法2D阵列组合成另一个二维阵列(蟒)
- 14. 从三维单元阵列转换为一组二维矩阵
- 15. 一维到二维阵列的javascript
- 16. 将二维numpy阵列转换为二维numpy矩阵
- 17. 从二维阵列
- 18. 二维阵列VB
- 19. 二维阵列C#
- 20. 二维NSMutable阵列和一些思维的NSMutable阵列
- 21. 将两张二维阵列到另一个阵列二维的Java
- 22. 二维和一维阵列之间
- 23. 转换二维阵列到多个单个阵列
- 24. 二维阵列列表java
- 25. 转换列表以二维阵列(JAVA)
- 26. 组合二维数组以形成一个三维阵列
- 27. 推新阵列为二维阵列
- 28. LCS的二维阵列表
- 29. jquery的交阵列二维
- 30. PostgreSQL的投阵列二维
你想应用什么样的转换?你只是想分裂它在中间? – user2357112
有没有办法根据用户输入来拆分它?如果他说4,那么1d阵列被分成2x4。或者如果他说2,那么将会有一个尺寸为4x2的二维数组? – Vignesh