我有一个字典keys
是长度 n 的元组。
例如,对于 n = 3 :
{('I', 'like', 'you'): 14, ('you', 'like', 'it'): 12, ('he', 'likes', 'it'): 2}
我可以找到以给定单词结尾的关键元组的所有单词,如下所示:
word = 'it'
words = [rest[-1] for first, *rest in counted_ngrams if rest[-1] == word]
但是,如何从原始字典中使用完成(元组+数字)元素的字典,其中键以给定的单词结尾,例如'it'
?
答案 0 :(得分:3)
有一个方便的字典理解:
a = {('I', 'like', 'you'): 14, ('you', 'like', 'it'): 12, ('he', 'likes', 'it'): 2}
b = {k: v for k, v in a.items() if k[-1] == 'it'}
print(b) # -> {('you', 'like', 'it'): 12, ('he', 'likes', 'it'): 2}
检查k[-1]
而不是k[2]
可确保上述方法适用于任何长度的元组(甚至是不一致的长度)。