如何创建一个字典,其中的值表示单词在列表中重复的次数?

时间:2017-12-03 04:18:28

标签: python-3.x list dictionary

Student

当我打印这段代码时,它给了我一个键值为1的字典。但是,我想要实现的是字典中的值是列表中每个单词重复的次数。所以,对于这个例子:{' hi':2,' bye':1,'见':1,'你':1 ,'以后':1}是我在输入x时为输出实现的目标。谁能帮我?谢谢:))

2 个答案:

答案 0 :(得分:1)

defaultdict适合此类任务。

from collections import defaultdict
x = ["hi", "hi", "bye", "see", "you", "later"]  

y = defaultdict(int)
for key in x:
    y[key] += 1
print(y)
print(dict(y))

添加计数器版本。在评论中(比defaultdict容易得多)。

from collections import Counter
x = ["hi", "hi", "bye", "see", "you", "later"]  
y = Counter(x)
print(y)

在不导入模块的情况下添加。

x = ["hi", "hi", "bye", "see", "you", "later"]  

y = dict()
for key in x:
    if not key in y:
        # y.update({key: 1})
        y[key] = 1
    else:
        y[key] += 1

print(y)

答案 1 :(得分:1)

你可以有这样的东西

x = ["hi", "hi", "bye", "see", "you", "later"]  
y = {i:x.count(i) for i in x}
print(y)

,结果将是

{'bye': 1, 'hi': 2, 'later': 1, 'see': 1, 'you': 1}