它应该像
一样工作input: list([[1,1,1],[2,2,2],[3,3,3]])
output: [[1,2,3], [1,2,3], [1,2,3]]
到目前为止,我已经这样做了:
def list(m):
list2=[]
for i in range(0, len(m)):
list2.append([x[i] for x in m])
return(list2)
每次都不起作用..
例如:
它适用于
input: list([[1,1,1],[2,2,2],[3,3,3]])
但不适用于
input: list([[1,3,5],[2,4,6]])
答案 0 :(得分:2)
您通常会使用zip
函数在Python中执行此操作:
inp = list([[1,1,1],[2,2,2],[3,3,3]])
output = list(map(list, zip(*inp)))
print(output)
>>> [[1, 2, 3], [1, 2, 3], [1, 2, 3]]
额外的map
调用是将zip
返回的元素tuple
转换为list
s,但如果你对元组没问题,你可以只是做:
inp = list([[1,1,1],[2,2,2],[3,3,3]])
output = list(zip(*inp))
print(output)
>>> [(1, 2, 3), (1, 2, 3), (1, 2, 3)]
此外,外部list
仅在Python 3中是必需的,其中zip
返回生成器,但不在Python 2中。