【发布时间】:2013-04-17 10:45:25
【问题描述】:
我想知道如何将 python 中的用户输入更改为列表,或者更好的是矩阵,就像使用 int(input) 将其转换为整数一样。
【问题讨论】:
-
为什么不想使用 zip() 函数?你见过this question或this one吗?
-
Jamylak 已回答您需要接受的问题,how to accept
标签: python
我想知道如何将 python 中的用户输入更改为列表,或者更好的是矩阵,就像使用 int(input) 将其转换为整数一样。
【问题讨论】:
标签: python
>>> L = [[1,2,3], [4,5,6], [7,8,9]]
>>> [[x[i] for x in L] for i in range(len(L[0]))]
[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
或
>>> zip(*L)
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
或
>>> import numpy as np
>>> L = np.arange(1, 10).reshape((3, 3))
>>> L
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
>>> L.transpose()
array([[1, 4, 7],
[2, 5, 8],
[3, 6, 9]])
【讨论】:
range(len(L[0]))
zip 放在那里以供其他可能查看此问题的人使用
list comprehension。
array([[1,2,3], [4,5,6], [7,8,9]]).T 会做你想做的事,如果你使用的是numpy。
【讨论】:
列表推导应该非常适合。这是一般功能:
def transpose(the_array):
return [[the_array[j][i] for j in range(0, len(the_array[i]))] for i in range(0, len(the_array))]
【讨论】: