Python|将嵌套列表配对并组合到元组列表
有时我们需要在数据类型之间进行转换,主要是因为将它们提供给某些函数或输出。本文解决了一个非常特殊的问题,即在列表列表中配对类似索引,然后构建这些对的元组列表。让我们讨论如何实现这个问题的解决方案。
方法 #1:使用zip()
+ 列表理解
我们可以使用zip
函数链接到每个元素的类似索引,列表推导可用于执行转换为元组背后的逻辑并将逻辑扩展到所有子列表。
# Python3 code to demonstrate
# Pairing and combining nested list to tuple list
# using zip() + list comprehension
# initializing lists
test_list1 = [[1, 4, 5], [8, 7], [2]]
test_list2 = [['g', 'f', 'g'], ['f', 'r'], ['u']]
# printing original lists
print("The original list 1 : " + str(test_list1))
print("The original list 2 : " + str(test_list2))
# using zip() + list comprehension
# Pairing and combining nested list to tuple list
res = [(u, v) for x, y in zip(test_list1, test_list2)
for u, v in zip(x, y)]
# print result
print("The paired list of tuple is : " + str(res))
The original list 1 : [[1, 4, 5], [8, 7], [2]]
The original list 2 : [[‘g’, ‘f’, ‘g’], [‘f’, ‘r’], [‘u’]]
The paired list of tuple is : [(1, ‘g’), (4, ‘f’), (5, ‘g’), (8, ‘f’), (7, ‘r’), (2, ‘u’)]
方法#2:使用zip() + itertools.chain.from_iterable()
这个问题也可以使用zip
函数和from_iterable
函数来解决。 zip函数执行的任务保持不变,但转换为元组并对所有元素执行此操作可以由from_iterable
函数处理。
# Python3 code to demonstrate
# Pairing and combining nested list to tuple list
# using zip() + itertools.chain.from_iterable()
from itertools import chain
# initializing lists
test_list1 = [[1, 4, 5], [8, 7], [2]]
test_list2 = [['g', 'f', 'g'], ['f', 'r'], ['u']]
# printing original lists
print("The original list 1 : " + str(test_list1))
print("The original list 2 : " + str(test_list2))
# using zip() + itertools.chain.from_iterable()
# Pairing and combining nested list to tuple list
res = list(zip(chain.from_iterable(test_list1),
chain.from_iterable(test_list2)))
# print result
print("The paired list of tuple is : " + str(res))
The original list 1 : [[1, 4, 5], [8, 7], [2]]
The original list 2 : [[‘g’, ‘f’, ‘g’], [‘f’, ‘r’], [‘u’]]
The paired list of tuple is : [(1, ‘g’), (4, ‘f’), (5, ‘g’), (8, ‘f’), (7, ‘r’), (2, ‘u’)]