根据关键的n元素元组条件找到字典元素

时间:2017-12-04 13:51:23

标签: python python-3.x dictionary

我有一个字典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'

1 个答案:

答案 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]可确保上述方法适用于任何长度的元组(甚至是不一致的长度)。