在Python中搜索字典键

0 投票
2 回答
1106 浏览
提问于 2025-04-17 18:35

我想知道怎么在一个包含二元组(也就是两个词一组的字典)里查找一个键,看看它是否存在,如果存在的话就打印出它的值。

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,意思是这个词组对应的值是3。

2 个回答

0

首先,你可能想知道为什么它不工作……

for k in wordscount.keys():
    if wordscount[k] == pair:

wordscount.keys() 这个命令会给你返回一个元组的列表,接下来的一行是用来将字典 wordsCount 的值和一个叫 'pair' 的列表进行比较。

解决方案是:

for k in wordscount.keys():
    if k == tuple(pair):
        print workscount[k]
5

只需要测试一下这个配对的元组是否存在:

if tuple(pair) in wordscount:
    print wordscount[tuple(pair)]

其实不需要遍历字典里的所有键;如果你直接给出要查找的键,Python 字典在找到匹配的键时会更高效。不过要注意,查找的键类型必须一致。你的字典键是元组,所以在查找时也要用元组作为键。

实际上,在 Python 字典中,列表是不能作为键的,因为列表是可变的;如果键本身可以改变,你就无法准确地查找这些键了。

撰写回答