嵌套列表操作,需要双重forloop?

时间:2015-12-01 04:01:54

标签: python nested-loops nested-lists

所以我想改变这个嵌套(列表)让我们称之为X

[['What if?', ' 2014', ' Randall Munroe'], ['Thing Explainer', ' 2015', ' Randall Munroe'], ['Alan Turing: The Enigma', ' 2014', ' Andrew Hodges']]

To此嵌套(列表)让它Y

[['What if', 'Thing Explainer', 'Alan Turing: The Enigma'], [ 2014,2015,2014], ['Randall Munroe, Randall Munroe, 'Andrew Hodges']]

Y中的第一项是X中第i个项中的第一项。

['What if', 'Thing Explainer', 'Alan Turing: The Enigma']

Y中的第二项是X中第i个项中的第二项

['Randall Munroe, Randall Munroe, 'Andrew Hodges']

任何人都可以在python中分享思维过程和解决方案吗?

3 个答案:

答案 0 :(得分:1)

您将需要在Python中使用内置的zip函数。

>>> zip(*[['What if?', ' 2014', ' Randall Munroe'], ['Thing Explainer', ' 2015', ' Randall Munroe'], ['Alan Turing: The Enigma', ' 2014', ' Andrew Hodges']])

https://docs.python.org/3/library/functions.html#zip

有更多文档

答案 1 :(得分:0)

我不确定您想要/不想使用哪些包。但是numpy可以很容易地做到这一点:

import numpy as np
dat = [['What if?', ' 2014', ' Randall Munroe'], ['Thing Explainer', ' 2015', ' Randall Munroe'], ['Alan Turing: The Enigma', ' 2014', ' Andrew Hodges']]
np.array(dat).T.tolist()
# [['What if?', 'Thing Explainer', 'Alan Turing: The Enigma'],
#  [' 2014', ' 2015', ' 2014'],
#  [' Randall Munroe', ' Randall Munroe', ' Andrew Hodges']]

答案 2 :(得分:0)

map (list, zip(*[['What if?', ' 2014', ' Randall Munroe'], ['Thing Explainer', ' 2015', ' Randall Munroe'], ['Alan Turing: The Enigma', ' 2014', ' Andrew Hodges']]))

这将完全符合您的需要。