【发布时间】:2017-04-18 11:13:43
【问题描述】:
我正在尝试创建一个单词字典和它在字符串中重复的次数。假设字符串如下所示
str1 = "aabbaba"
我想创建一个这样的字典
word_count = {'a':4,'b':3}
我正在尝试使用字典理解来执行此操作。 我做了
dic = {x:dic[x]+1 if x in dic.keys() else x:1 for x in str}
这最终给出了一个错误提示
File "<stdin>", line 1
dic = {x:dic[x]+1 if x in dic.keys() else x:1 for x in str}
^
SyntaxError: invalid syntax
谁能告诉我语法有什么问题?另外,如何使用字典理解创建这样的字典?
【问题讨论】:
-
你看过
Counter吗? -
删除第二个 x: 第一个 x: 是两者的键,if 子句被解析为值的一部分
-
@dawg 我知道柜台。我不想使用计数器。如果可能的话,我想使用字典理解来做到这一点。
-
dict/list/set 理解很酷,但是这并不意味着它们是所有问题的最佳解决方案,这是其中一种情况
-
也请看this answer
标签: python string dictionary counter dictionary-comprehension