首页 > 解决方案 > 根据其他元组中的数据更改元组的值

问题描述

我有两个元组

A=[(1,Poland),(2,Canada),(3,Germany)]
B=[(1,16),(2,20),(3,54)]

我如何根据元组的第一个值将它们合并在一起以获得类似的东西

C=[(Poland,16),(Canada,20),(Germany,54)]

我发现了这个,但这个答案来自 2015 年,也许你知道更好的解决方案。我的数据最多为 10/20 个元组,所以我们不处理庞大的数据集

标签: pythonpython-3.xtuples

解决方案


如果元组总是像示例中那样排序,这是一个简单的情况,您可以简单地使用zip

C = []
for a,b in zip(A, B):
    C.append(a[1], b[1])

#  or simply C = [(a[1], b[1]) for a,b in zip(A, B)]

如果不能保证顺序(这使得第一个数字实际上是必要的),我会首先将一个列表转换为dict,然后简单地匹配这对:

b_dict = dict(B)
C = []
for i, country in A:
    C.append((country, b_dict[i]))

#  or C = [(country, b_dict[i]) for i, country in A]

当然,这可能需要对边缘情况进行一些处理,但我将把它留给你。


推荐阅读