搜索元组列表的字典

Searching dictionary of tuple lists

还在学习Python数据结构,所以请多多包涵。我有一个二元组列表字典:

ex_dict = {4: [(6, 3), (5, 1), (7, 5)], 
           6: [(4, 3), (7, 2), (0, 5)], 
           7: [(6, 2), (5, 2), (4, 5)], 
           3: [(2, 2), (5, 9), (1, 2)], 
           2: [(3, 2)], 
           5: [(7, 2), (4, 1), (3, 9)], 
           1: [(3, 2), (0, 3)], 
           0: [[1, 3], [6, 5]]}

我想访问元组的第二个元素。例如,假设我将 u=3 作为键值,将 v=5 作为第一个元组值。如何访问 key=3 元组列表中的 9

您可以使用 for 循环遍历元组列表:

u = 3
v = 5
result = None
for fst, snd in ex_dict[u]:
    if fst == v:
        result = snd
        break
    
print(result)

这输出:

9

如果您有很多查询要进行,最好将元组列表中的值转换为字典。语法更简洁,查找速度更快:

u = 3
v = 5
reshaped_dict = {
    k: {fst: snd for fst, snd in v} for k, v in ex_dict.items()
}

result = reshaped_dict[u][v]
print(result)

这也输出:

9