python - 基于共享值连接列表
问题描述
我有以下两个列表,l1
并且l2
.
l1 = [('8012387', {'key': values}), ('10556298', {'key': values}), ...]
l2 = [('8012387', 'TextA'), ('10556298', 'TextB'), ...]
我想组合这两个列表,这样我将拥有以下内容。
[('TextA', {'key': values}), ('textB', {'key': values}), ...]
我不知道如何开始。
解决方案
您可以制作l2
一个 dict 来查找键,然后使用列表理解构建您想要的列表:
l1 = [('8012387', {'key': 'values'}), ('10556298', {'key': 'values2'})]
l2 = [('8012387', 'TextA'), ('10556298', 'TextB')]
d_l2 = dict(l2)
[(d_l2[k], obj) for k, obj in l1]
# [('TextA', {'key': 'values'}), ('TextB', {'key': 'values2'})]
这假设所有键都存在于l2
. 如果不是,则必须定义在这种情况下所需的行为。
如果列表对齐(即l2[0
] 对应于l1[0]
等)。你可以压缩它们:
[(k, v) for (_1, v), (_2, k) in zip(l1, l2)]
推荐阅读
- php - 将数组转为链式方法
- javascript - vscode 在 jsconfig.json 文件中显示 typescript 相关问题
- java - java中字符串常量池中两个字符串的连接
- sql - T-SQL如何在多对多情况下选择所有没有关系的项目?
- sqlite - 列别名与另一列名称之间的歧义
- gitlab-ci - 如何动态设置 gitlab-ci 变量?
- javascript - 一次设置多个cookie的功能不起作用
- xamarin.forms - Prism Xamarin - 数据绑定未更新
- reactjs - 反应为什么在调用函数初始化状态时状态不更新?
- c# - 如何将 INT 值从 MySQL 数据库分配给 Visual Studio Windows 窗体应用程序