2013-10-29 37 views
-2

因此,我需要逐个字符地循环一个句子,总计不同的字母以及它们出现的次数。我想不出做第一点的方法(我会自己完成总计,我有一个足够好的想法,我想看看我能不能做到这一点)。 我不是在Python的顶尖,但我认为这将是一个循环遍历python中的每个字符

for letter in sentence 

,但我不知道如何通过每个字母循环。

+0

你是指每个单词?你不能遍历''a“'(你可以,但它会有点无意义)。 – rlms

+0

可能重复的[项目频率计数在python](http://stackoverflow.com/questions/893417/item-frequency-count-in-python) –

+0

@JamesDonnelly - 你说得对,'在信中的句子: '是循环每个字符的正确方法(尽管使用下面提到的Counter类是您正在尝试执行的直接解决方案) – Michael0x2a

回答

5

可以使用Counter类从collections(Python的2.7+):

>>> import collections 
>>> sentence = "asdadasdsd" 
>>> collections.Counter(sentence) 
Counter({'d': 4, 'a': 3, 's': 3}) 

你可以得到数如下:

>>> counts = collections.Counter(sentence) 
>>> counts['d'] 
4 
+2

整洁的解决方案;请给他添加一个扰流标签,他想自己试试(: – Faultier

2

好了,其他的解决办法告诉你一个干净的方式分两行来完成这项工作。然而,我要回答你的真实关于如何遍历一个句子的问题。

事实是,你是对的。这正是你如何循环一个句子。请参阅下面的演示:

>>> sentence = "This is a sentence!" 
>>> for letter in sentence: 
...  print letter 
... 
T 
h 
i 
s 

i 
s 

a 

s 
e 
n 
t 
e 
n 
c 
e 
! 
>>>