Python 中将元组列表转换为列表


我们可能会遇到元素为元组的列表。但为了进一步的数据处理,我们可能需要将元组转换为列表的普通元素。在本文中,我们将了解实现此目标的方法。

使用列表推导式

在这种方法中,我们设计嵌套的 for 循环来遍历每个元组并生成最终的元素列表。

示例

 实时演示

listA = [('Mon', 3), ('Wed', 4), ('Fri', 7, 'pm')]
# Given list
print("Given list : \n", listA)
res = [item for t in listA for item in t]
# Result
print("Final list: \n",res)

Learn Python in-depth with real-world projects through our Python certification course. Enroll and become a certified expert to boost your career.

输出

运行以上代码将得到以下结果:

Given list :
[('Mon', 3), ('Wed', 4), ('Fri', 7, 'pm')]
Final list:
['Mon', 3, 'Wed', 4, 'Fri', 7, 'pm']

使用 itertools

我们还可以使用 itertools.chain 方法以及 * 运算符,它将获取元组列表中的每个元素,然后将它们组合为列表的一系列元素。

示例

 实时演示

import itertools
listA = [('Mon', 3), ('Wed', 4), ('Fri', 7, 'pm')]
# Given list
print("Given list : \n", listA)
res = list(itertools.chain(*listA))
# Result
print("Final list: \n",res)

输出

运行以上代码将得到以下结果:

Given list :
[('Mon', 3), ('Wed', 4), ('Fri', 7, 'pm')]
Final list:
['Mon', 3, 'Wed', 4, 'Fri', 7, 'pm']

使用 reduce 和 concat

reduce 函数用于将 concat 函数应用于每个列表元素,最终生成包含原始列表所有元素的列表。

示例

 实时演示

import operator
from functools import reduce
listA = [('Mon', 3), ('Wed', 4), ('Fri', 7, 'pm')]
# Given list
print("Given list : \n", listA)
res = (list(reduce(operator.concat, listA)))
# Result
print("Final list: \n",res)

输出

运行以上代码将得到以下结果:

Given list :
[('Mon', 3), ('Wed', 4), ('Fri', 7, 'pm')]
Final list:
['Mon', 3, 'Wed', 4, 'Fri', 7, 'pm']

更新于: 2020年5月20日

717 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告