Skip to main content
 首页 » 编程设计

python之使用元组作为字典键

2025年05月04日15mengfanrong

我使用 GraphViz 库,在某些情况下,它会返回一个以元组为键的字典。

{(4, 7): 0, (2, 6): 1, (10, 4): 1, (5, 11): 1, (4, 5): 1, 
(2, 8): 0, (8, 11): 0, (10, 0): 1, (6, 11): 1, (9, 11): 1, 
(1, 9): 0, (10, 1): 0, (7, 11): 1, (0, 9): 1, (3, 7): 1, 
(10, 3): 1, (10, 2): 1} 

出于某种原因,我想获取元组where中的第二个数字: 第一个数字 == 10 和 值 == 1

我尝试使用 (10, ) 访问字典,但我认为这种语法在 python 中是不允许的。

答案应该是:[4 ,0 ,3 , 2]

请您参考如下方法:

你必须遍历字典,例如:

In [1]: d = {(4, 7): 0, (2, 6): 1, (10, 4): 1, (5, 11): 1, (4, 5): 1, 
   ...: (2, 8): 0, (8, 11): 0, (10, 0): 1, (6, 11): 1, (9, 11): 1, 
   ...: (1, 9): 0, (10, 1): 0, (7, 11): 1, (0, 9): 1, (3, 7): 1, 
   ...: (10, 3): 1, (10, 2): 1} 
 
In [2]: [b for (a, b), v in d.items() if a == 10 and v == 1] 
Out[2]: [4, 0, 3, 2]