在python词典中查找匹配(x,y)或(y,x)的元组

Ano*_*nym 5 python

我有一把(x,y)钥匙的字典,(x,y)意思相同(y,x),我该怎么做?

我可以:

>>> d = {(1,2): "foo"}
>>> i = d.get(2,1)
>>> if i is None:
...     i = d.get((1,2))
...
>>> i
'foo'
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来做到这一点,所以直接d.get((2,1))匹配密钥(1,2)?理想情况下,我想插入例如,(2,1)而不是与(1,2)键不同.

bti*_*lly 10

使用frozensets而不是元组.

d = {frozenset((1,2)): "foo"}
print d.get(frozenset((2,1)))
Run Code Online (Sandbox Code Playgroud)