python - 在列表中拆分列表

标签 python list split element

输入:

[['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/

相关文章:

python - 我如何使用 sqlalchemy 来利用 sqlite list 类型/类型亲和性?

python - 带 Bottle 的 MiddleStorm 中间件

python - 使用线程初始化类 (Python)

python - 将列表移动到 csv 的更好方法?

python - 通过正则表达式更改 pandas 列的内容

javascript - split方法和数组拼接js

python - 使用 GDAL 在 Python 和 Matplotlib 中读取 TIFF

c# - 按 ID 的 BinarySearch 对象数组

python - 选择哪种文件模式并循环创建列表

Python:动态分割文本与数字