将元组列表转换为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)

输出结果

运行上面的代码给我们以下结果-

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函数应用于每个列表元素,最终生成原始列表中所有元素的列表。

示例

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']