输入:
[['Tryndamere', 'Barbarian', 'Fighter'],['Caitlyn', 'Sheriff', 'Marksmen'],...['Veigar', 'Midget', 'Mage']]
预期输出:
['Barbarian']['Caitlyn']['Fighter']['Mage']['Marksmen']['Midget']['Sheriff']['Tryndamere']['Veigar']...
问题: 如何将列表中的列表分开,直到它们成为单独的元素?谢谢大家
最佳答案
假设数据如下所示
>>> lists = [
... ['Tryndamere', 'Barbarian', 'Fighter'],
... ['Caitlyn', 'Sheriff', 'Marksmen'],
... ['Veigar', 'Midget', 'Mage']
... ]
然后,您可以像这样使用列表理解
>>> from pprint import pprint
>>> pprint([[item] for c_list in lists for item in c_list])
[['Tryndamere'],
['Barbarian'],
['Fighter'],
['Caitlyn'],
['Sheriff'],
['Marksmen'],
['Veigar'],
['Midget'],
['Mage']]
或者使用itertools.chain
>>> from itertools import chain
>>> pprint([[item] for item in chain.from_iterable(lists)])
[['Tryndamere'],
['Barbarian'],
['Fighter'],
['Caitlyn'],
['Sheriff'],
['Marksmen'],
['Veigar'],
['Midget'],
['Mage']]
但是,如果您正在考虑将这些列表扁平化为单个列表,那么请检查 this 。您可以轻松扩展chain
版本来做到这一点,就像这样
>>> pprint(list(chain.from_iterable(lists)))
['Tryndamere',
'Barbarian',
'Fighter',
'Caitlyn',
'Sheriff',
'Marksmen',
'Veigar',
'Midget',
'Mage']
或者列表理解版本,
>>> pprint([item for c_list in lists for item in c_list])
['Tryndamere',
'Barbarian',
'Fighter',
'Caitlyn',
'Sheriff',
'Marksmen',
'Veigar',
'Midget',
'Mage']
关于python - 在列表中拆分列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22882143/