在python中搜索dict键
如果某个键存在或不存在,我如何在Bigram字典中搜索该键,如果存在,如何打印该键的值在python中搜索dict键,python,Python,如果某个键存在或不存在,我如何在Bigram字典中搜索该键,如果存在,如何打印该键的值 wordsCounts = {('the','computer'): 2 , ('computer','science'): 3 , ('math','lecture'): 4, ('lecture','day'): 2} 因此,我想搜索这对('math','teaching')是否存在 pair = ['computer','science'] for k in wordscount.keys():
wordsCounts = {('the','computer'): 2 , ('computer','science'): 3 , ('math','lecture'): 4, ('lecture','day'): 2}
因此,我想搜索这对('math','teaching')
是否存在
pair = ['computer','science']
for k in wordscount.keys():
if wordscount[k] == pair:
print wordscount[v]
因此,结果将是一个列表('computer','science'):3
只要测试这对元组是否存在:
if tuple(pair) in wordscount:
print wordscount[tuple(pair)]
不需要遍历字典中的所有键;如果只给python字典一个要查找的键,那么它在查找匹配键时会更加高效,但它必须是相同的类型。您的字典键是元组,所以请在搜索时使用元组键
事实上,在python字典中,列表不允许作为键,因为它们是可变的;如果密钥本身可以更改,则无法准确搜索密钥。只需测试密钥对的元组是否存在:
if tuple(pair) in wordscount:
print wordscount[tuple(pair)]
不需要遍历字典中的所有键;如果只给python字典一个要查找的键,那么它在查找匹配键时会更加高效,但它必须是相同的类型。您的字典键是元组,所以请在搜索时使用元组键
事实上,在python字典中,列表不允许作为键,因为它们是可变的;如果密钥本身可以更改,则无法准确搜索密钥。首先,您可能想知道它为什么不起作用
for k in wordscount.keys():
if wordscount[k] == pair:
wordscont.keys()
将返回元组列表,下一行是将dict-wordscont的值与列表对进行比较。
解决办法是
for k in wordscount.keys():
if k == tuple(pair):
print workscount[k]
首先,你可能想知道为什么它不起作用
for k in wordscount.keys():
if wordscount[k] == pair:
wordscont.keys()
将返回元组列表,下一行是将dict-wordscont的值与列表对进行比较。
解决办法是
for k in wordscount.keys():
if k == tuple(pair):
print workscount[k]
为什么不首先创建一个元组呢
pair=('computer','science')
@MarkusMeskanen:我假设用户在这里的其他地方有一个列表。@MartijnPieters:Pythonic的方法是尝试访问所需的元素,并捕获抛出的异常(如果它不存在)。@rburny:我在这里遵循操作模式。python的方式可能是请求原谅而不是允许,但那是真的。为什么不首先创建一个元组呢pair=('computer','science')
@MarkusMeskanen:我假设用户在这里的其他地方有一个列表。@MartijnPieters:Pythonic的方法是尝试访问所需的元素,并捕获抛出的异常(如果它不存在)。@rburny:我在这里遵循操作模式。python的方式可能是请求原谅而不是允许,但那是真的。谢谢!我正要这么做:)谢谢你!我正要这么做:)