【发布时间】:2020-11-19 07:44:10
【问题描述】:
我有这个清单:
input = [[[1,2]], [[3,4]], [[5,6]]]
想要的输出:
output = [[1,3,5],[2,4,6]]
我试过这个:
x, y = map(list,zip(*input))
后来意识到由于多余的方括号,此方法不起作用, 有没有办法在不迭代的情况下解决这个问题。
【问题讨论】:
标签: python-3.x list-manipulation
我有这个清单:
input = [[[1,2]], [[3,4]], [[5,6]]]
想要的输出:
output = [[1,3,5],[2,4,6]]
我试过这个:
x, y = map(list,zip(*input))
后来意识到由于多余的方括号,此方法不起作用, 有没有办法在不迭代的情况下解决这个问题。
【问题讨论】:
标签: python-3.x list-manipulation
你可以试试这个:
>>> from operator import itemgetter
>>> input = [[[1,2]], [[3,4]], [[5,6]]]
>>> list(zip(*map(itemgetter(0), input)))
[(1, 3, 5), (2, 4, 6)]
【讨论】:
In [117]: input = [[[1,2]], [[3,4]], [[5,6]]]
In [118]: list(zip(*[i[0] for i in input]))
Out[118]: [(1, 3, 5), (2, 4, 6)]
In [119]: list(map(list, zip(*[i[0] for i in input])))
Out[119]: [[1, 3, 5], [2, 4, 6]]
【讨论】: