【发布时间】:2017-04-04 09:52:10
【问题描述】:
我写了一个函数来计算给定字符串中单个字母的出现次数:
def count_letters(string, letter):
'''returns the number of letters letter in a sentence string.'''
count = 0
for char in string:
if char == letter:
count += 1
return count
现在,我想找到一种方法以列表格式返回所有字母出现的次数(假设它们都是小写字母 - 我使用的是string.lower())。我将一个字母计数器初始化为 26 个 0 的列表:
letter_counter = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
但我不确定如何遍历给定的字符串并为每个单独的字母附加列表。
例如。如果string = "Hello", letter_counter 返回:
letter_counter = [0,0,0,0,1,0,0,1,0,0,0,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0]
我认为这只是 for 循环中的 for 循环的问题,但它似乎更复杂。或者我只是看了太久了。
提前致谢。
【问题讨论】:
-
使用
collections.Counter是最惯用的方法来计算序列中的出现次数。您还可以对letter_counter执行 for 循环,确保将每个索引转换为带有chr(ord('A' + i))的字符。
标签: python string python-3.x iteration