如何使用表示单词在列表中重复的次数的值创建字典?

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

for i in x:

sum = x.count(i)

y = dict((i, sum) for i in x)

print(y)

当我打印此代码时,它给了我一个关键值为1的字典。但是,我试图实现的是字典中的值是列表中每个单词重复的次数。所以,对于这个例子:{'hi':2,'bye':1,'see':1,'you':1,'later':1}是我在输入时想要达到的输入X。谁能帮我?谢谢:)如何使用表示单词在列表中重复的次数的值创建字典?

回答:

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)

回答:

,你可以有这样的事情

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} 

以上是 如何使用表示单词在列表中重复的次数的值创建字典? 的全部内容, 来源链接: utcz.com/qa/259461.html

回到顶部