将元组列表中给定索引处的元素与另一个列表组合以形成对

Combining the elements at a given index in a list of tuples with another list to form pairs

我有两个列表:

x = [(1, 2, 3), (4, 5, 6), (7, 8, 9)]
y = ['A', 'B', 'C']

我想获取第一个列表中每个元组的第一项,并将其与第二个列表组合,如下所示:

output = [(1, 'A'), (4, 'B'), (7, 'C')]

另外,在这两个列表中我都有几千个元素,所以我希望能尽快提供解决方案。

output = [(x[i][0],y[i]) for i in range(len(x))]

尝试:

x = [(1, 2, 3), (4, 5, 6), (7, 8, 9)]
y = ['A', 'B', 'C']

output = [ (i[0], j) for i, j in zip(x, y) ]

print(output)

[(1, 'A'), (4, 'B'), (7, 'C')]

您可以使用 zip():

list(zip(list(zip(*x))[0], y))

输出:

[(1, 'A'), (4, 'B'), (7, 'C')]

您可以使用简单的列表理解 zip:

output = [(a[0], b) for a, b in zip(x, y)]

您还可以使用 operator.itemgetter:

预处理 x
from operator import itemgetter
output = list(zip(map(itemgetter(0), x), y))

输出:

[(1, 'A'), (4, 'B'), (7, 'C')]