Python 如何从字符串创建新词典?

Python 如何从字符串创建新词典?,python,Python,我有一个字符串:my_str=“abra cadabra” 我需要创建一个新的字典,字典中的键是我的单词中的字母,值应该是每个字母的数量。 例如: my_str = "abra cadabra" output >> {'a': 5, 'b': 2, 'r': 2, 'c': 1, 'd': 1} 我得到的是-{'a':5,'b':5,'r':5,'c':5,'d':5}试试这个: my_str = "abra cadabra" my_set

我有一个字符串:
my_str=“abra cadabra”
我需要创建一个新的字典,字典中的键是我的单词中的字母,值应该是每个字母的数量。 例如:

my_str = "abra cadabra"
output >>
{'a': 5, 'b': 2, 'r': 2, 'c': 1, 'd': 1}
我得到的是-
{'a':5,'b':5,'r':5,'c':5,'d':5}

试试这个:

my_str = "abra cadabra"
my_set = set(my_str)
my_set.discard(" ")
my_dict = {}
for key in my_set:
    my_dict[key] = my_str.count(key)
print(my_dict)

可以用来做这个

例如:

from collections import Counter

my_str = "abra cadabra"
my_str = my_str.replace(" ", "")

c = Counter(list(my_str))

print('{}\n{}\n{}'.format(c, c.keys(), c.values()))
输出:

Counter({'a': 5, 'b': 2, 'r': 2, 'c': 1, 'd': 1})
dict_keys(['a', 'b', 'r', 'c', 'd'])
dict_values([5, 2, 2, 1, 1])

您可以像普通dict一样迭代键和值。

您的代码是什么?如果k.strip()},我可以使用
output={k:5 for k in set(my_str)生成该输出,但这似乎是错误的:这里有一个内置的
collections.Counter
函数用于此目的。@Barmar只是一个快速纠正计数器对象不是函数对吗?是的,但你可以像使用
range()一样使用它
像函数一样。@Jab我的意思是官方文档页面上的大多数“函数”在技术上也不是函数。