python-3.x - 通过两个值查找字典
问题描述
able
是一个元组列表,beta
也是一个字典列表。able
并且beta
具有相同数量的元素。不保证订单。
给定 an ,找到equals的值和equals的值所在able
的字典。beta
beta[10]
able[0]
beta[20]
able[1]
总会有独一无二的匹配。
以下工作,但必须有更好的方法。我只是无法弄清楚它是什么。
able = [(1,2), (3,4), (1,4), (3,5)]
beta = [{10:1, 20:2, 30:3}, {10:3, 20:4, 30:55}, {10:3, 20:5, 30:66}, {10:1, 20:4, 30:11}]
for a in able:
for b in beta:
if a[0] == b[10] and a[1] == b[20]:
print(b)
break
我想我可以同时排序able
和beta
。然后 Nthable
将对应于 Nth beta
,因此确定给定的索引able
并使用该索引报告beta
。这似乎并没有更好或更pythonic。
解决方案
使用与您要查找的值相对应的键生成字典:
beta2 = {(b[10], b[20]): b for b in beta}
print([beta2[a] for a in able])
推荐阅读
- stripe-payments - 如果我只想在购买时保存用户的信用卡,则有关 `setup_future_usage: "off_session"` 和 `confirmCardSetup` 的条纹差异
- linux - 按特定顺序多线程处理文件的算法
- python-3.x - 为什么我的函数返回 None 而不是数字?
- javascript - 按字母顺序排列对象数组中的对象数组
- php - 如何从 foreach 循环中获取变量?
- javascript - 尝试使用默认配置和运行时未找到预设的 vue-test-utils-getting-started
- c++ - MFC 中的窗口消息管理:是否必须添加基类调用?
- kotlin - 黄瓜 + JUnit5 + gradle + kotlin
- c# - 带有表示模型的 MVP 模式
- php - 从 Google Sheets 获取 csv 文件并使用 PHP 将其放入数组中