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

2024-05-08 23:20:43 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

到这个嵌套(列表)让它

[['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分享这些思想过程和解决方案吗?你知道吗


Tags: the列表if过程enigmawhat思想thing
3条回答

我不知道你想/不想用什么软件包。但是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']]

您需要使用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

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

这正是你所需要的。你知道吗

相关问题 更多 >