说我有一个Counter
代表单词集合的对象:
>>> words = ['hello', 'hello', 'hello', 'world']
>>> counter = Counter(words)
找出哪些单词计数为 1 的一种方法是迭代counter
:
for word, count in counter.items():
if count == 1:
print(word)
有没有更简单/更好的方法来做到这一点?也就是说,是否可以“反转”counter
给出计数为的单词x
?
要反转任何映射 - 无论是Counter
, a dict
,或其他任何东西:
rev = {v: k for k, v in d.items()}
然后你像任何其他字典一样使用它:
key_whose_count_is_10 = rev[10]
如果有两个键具有相同的值,则该值将任意映射到其中之一。但这几乎是你的问题所固有的。您正在询问其计数为的“该”键x
;如果有三个键的计数为,你想做什么x
?
如果您只想进行一个查询,而不是多个查询,那么迭代会更有效。哪一个是clearer(这几乎总是更重要)是有争议的。为了进行比较,这里有一种方法:
key_whose_count_is_10 = next(k for k, v in d.items() if v==10)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)