1
A
回答
4
一般來說,你可以構建一個反向的字典是這樣的:
test_reversed = dict((v, k) for k, values in test.iteritems() for v in values)
+1
Not on python v3 + ... would be'test.items()'而不是'test.iteritems()' – dawg 2011-03-11 00:30:47
2
假設恰好有一個關鍵的匹配,可以使用
key = next(k for k in test if "bb" in test[k])
這遍歷所有的鍵,直到分配列表中包含你在找什麼。這個操作比用鍵查找效率要低很多,這是字典的目的。
3
除了遍歷鍵和值之外,還沒有簡單的方法來完成此操作。如果你需要做這個有很多,這將是值得構建反向映射爲一次性的,所以你可以去查找:
from collections import defaultdict
reversed_test = defaultdict(set)
test = { 'a': ['localhost'], 'b': ['bb','aa'], 'c': ['cc'] }
for k, v in test.items():
for i in v:
reversed_test[i].add(k)
print reversed_test['bb']
的reversed_test
字典映射一個關鍵,例如'bb'
一組最初映射到包含'bb'
的列表的字符串。這比Space_C0wb0y's neat solution簡潔的要少得多,因爲我是假設有可能爲test
的樣子:
{'a': ['foo','bar','foo'], 'b': ['foo','quux'] }
換句話說:
- 多個鍵可能映射到包含
'foo'
'foo'
名單可能會在列表中多次出現。
相關問題
- 1. 如何通過散列的Perl散列中的值訪問鍵?
- 2. Redis通過散列值中的模式刪除散列鍵
- 3. 通過散列值替換散列中的鍵
- 4. 在散列表中,如何通過鍵獲取對象值?
- 5. 需要知道如何在ruby中處理散列鍵
- 6. 通過散列
- 7. 如何通過一個鍵和合並內鍵和陣列散列組陣列
- 8. Perl - 如何知道值的哈希鍵?
- 9. 如何刪除散列值爲空的散列鍵?
- 10. 如何從嵌套散列獲取鍵值或鍵值的值?
- 11. 通過散列值添加散列和排序的陣列
- 12. 如何查詢通過特定的值火力數據庫不知道父鍵
- 13. 如何通過循環使用鍵集迭代散列表
- 14. 通過密鑰的散列檢索鍵的值在Python
- 15. 如何通過使用鍵和值的散列來搜索和替換(替代)
- 16. 如何通過哈希鍵值之一合併兩個散列數組?
- 17. 如何通過IOS中的預定義短語和salt值生成散列鍵?
- 18. 如何通過散列碼中的散列碼來排序隨機值
- 19. 找出mcrypt的鍵知道散列和滑動
- 20. 如何通過GAS知道請求IP?
- 21. 如何知道通過蟒蛇
- 22. 通過散列數組中的散列值進行排序
- 23. 映射,通過密鑰的散列/值
- 24. 通過值對散列數組排序
- 25. XMLSimple解析鍵值散列
- 26. 使用散列鍵和值
- 27. 添加散列鍵值
- 28. 如何將一個散列鍵與另一個散列鍵相交併過濾掉匹配值?
- 29. ASP.NET:通過Intellisense的Page_Events列表?我如何知道簽名?
- 30. 如何通過散列更改數組中的值?
這可能有所幫助:http://stackoverflow.com/questions/3282823/python-get-key-with-the -least-value-from-a-dictionary – Nope 2011-03-10 14:52:58