給定一個對一字典(=雙射)點菜是否存在一個更好的方式來存儲雙向字典,而不是存儲其逆向分離?
for key, value in someGenerator:
myDict[key] = value
逆查找字典產生可以通過加入
invDict[value] = key
到for
循環而輕易地產生。但這是一種Pythonic方式嗎?我應該寫一個class Bijection(dict)
來管理這個逆字典嗎?並且提供第二個查找功能?或者這樣的結構(或類似的結構)已經存在?
這[bidict]怎麼樣(https://pypi.python.org/pypi/bidict) –
@JonClements聽起來很完美,謝謝!我會接受這個答案。使用切片進行反向查找是一個好主意 –
通過它的外觀,「bidict」只是封裝了兩個帶有前向和反向映射的單獨Python字典,所以它不會比自己做同樣的效率更高。事實上,如果你正在做大量的關鍵字查找,由於函數調用的開銷,它會慢得多。 – Aya