首页 > 解决方案 > 通过两个值查找字典

问题描述

able是一个元组列表,beta也是一个字典列表。able并且beta具有相同数量的元素。不保证订单。

给定 an ,找到equals的值和equals的值所在able的字典。betabeta[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

我想我可以同时排序ablebeta。然后 Nthable将对应于 Nth beta,因此确定给定的索引able并使用该索引报告beta。这似乎并没有更好或更pythonic。

标签: python-3.xdictionary

解决方案


使用与您要查找的值相对应的键生成字典:

beta2 = {(b[10], b[20]): b for b in beta}
print([beta2[a] for a in able])

推荐阅读