搜索元组列表的字典
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
还在学习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