如果密钥是否存在,如何搜索双字母字典以获取密钥,如果存在则打印它的值?
wordsCounts = {('the','computer'): 2 , ('computer','science'): 3 , ('math','lecture'): 4, ('lecture','day'): 2}
所以,我想搜索('math','lecture')
对是否存在?
pair = ['computer','science']
for k in wordscount.keys():
if wordscount[k] == pair:
print wordscount[v]
所以结果将是一个列表('computer','science'): 3
答案 0 :(得分:5)
只测试该对的元组是否存在:
if tuple(pair) in wordscount:
print wordscount[tuple(pair)]
无需遍历字典中的所有键;如果你只是给它一个寻找的键,python字典在查找匹配键方面会更有效率,但它必须是相同的类型。您的字典键是元组,因此在搜索时请使用元组键。
事实上,在python词典中,列表不允许作为键,因为它们是可变的;如果可以更改密钥本身,则无法准确搜索密钥。
答案 1 :(得分:0)
首先,你可能想知道为什么它不起作用..
for k in wordscount.keys():
if wordscount[k] == pair:
wordscount.keys()
将返回元组列表,下一行是将dict wordsCount的值与列表'对进行比较。
解决方案是
for k in wordscount.keys():
if k == tuple(pair):
print workscount[k]