【发布时间】:2019-07-10 03:39:52
【问题描述】:
我正在根据用户输入进行每字字符计数器。
但是,如果输入中有重复的单词(类似情况),我的代码只会输出第一个单词(不包括重复的单词)。
我为此使用了 split、len 和 for 循环。
sentence = input("Enter a sentence: ")
splitting = sentence.split()
final = {x:len(x) for x in splitting}
print(final)
示例输入:新手机提醒!您的新手机将于下周上市。
预期输出:{'New': 3, 'phone': 5, 'alert!': 6, 'Your': 4, 'new': 3, 'phone': 5, 'will' : 4, '是': 2 ...}
实际输出:{'New': 3, 'phone': 5, 'alert!': 6, 'Your': 4, 'new': 3, 'will': 4, 'be' : 2 ...}
它同时显示“新”和“新”,因为它们的大小写不匹配。但是,“电话”只显示一次。
【问题讨论】:
-
字典不能有重复的键。你不会使用字典得到你想要的输出。
-
在“for z in split”中将z改为x,否则报错
-
正如@SandeepKadapa 指出的那样。字典中不能有重复的键。告诉我们你想达到什么目标,你是想获得字数还是字符数?
-
对不起,变量上的错字。我在 for 循环中将 z 更改为 x 。我正在尝试字符数。我是 Python 新手,所以我还在想办法。
-
除非你想实现自己的方法,这可以通过
collections.Counter来完成。
标签: python python-3.x string list split