python - 根据其他元组中的数据更改元组的值
问题描述
我有两个元组
A=[(1,Poland),(2,Canada),(3,Germany)]
B=[(1,16),(2,20),(3,54)]
我如何根据元组的第一个值将它们合并在一起以获得类似的东西
C=[(Poland,16),(Canada,20),(Germany,54)]
我发现了这个,但这个答案来自 2015 年,也许你知道更好的解决方案。我的数据最多为 10/20 个元组,所以我们不处理庞大的数据集
解决方案
如果元组总是像示例中那样排序,这是一个简单的情况,您可以简单地使用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]
当然,这可能需要对边缘情况进行一些处理,但我将把它留给你。
推荐阅读
- bash - 通过 bash 更新 yaml
- validation - 有向图边限制模式
- angular - 激活组件上的按钮并继续计数直到停止
- twitter-bootstrap - 在导航栏中显示可折叠项目会改变导航栏设计
- python - 即使我的路径正确,Sublime3 也无法识别 Python?
- haskell - 描述纯值和(索引单子)不纯值的 AST 评估器
- laravel - 如何在共享主机上部署 laravel 应用程序?
- eclipse - Eclipse Git:将一个分支更改拉到另一个分支
- graph - 图数据库设计:我应该添加关系,还是只是遍历
- sed - 构建 binutils:sed 有问题