PySchool- 列表(主题 6-22)
我刚开始学习Python,正在尝试解决一些关于列表的问题。有一个问题让我卡住了,我实在想不出来该怎么做:
写一个函数
countLetters(word)
,这个函数接收一个单词作为参数,然后返回一个列表,统计每个字母出现的次数。字母需要按字母顺序排列。举个例子:
>>> countLetters('google') [('e', 1), ('g', 2), ('l', 1), ('o', 2)]
我无法统计每个字符出现的次数。为了排序,我使用了 sorted(list)
,还用到了 dictionary(items functions)
来输出这种格式(列表的元组)。但是我就是无法把这些东西连接起来。
3 个回答
1
提示:注意在Python中,你可以像遍历列表或其他可迭代对象一样遍历字符串:
def countLetters(word):
for letter in word:
print letter
countLetters("ABC")
输出结果将是:
A
B
C
所以,不要直接打印出来,而是用循环来查看你手里的每个字母(在你的letter
变量中),然后以某种方式对它进行计数。
1
终于成功了!!!
import collections
def countch(strng):
d=collections.defaultdict(int)
for letter in strng:
d[letter]+=1
print sorted(d.items())
这是我的解决方案。现在,我想看看你们是怎么解决这个问题的。我很想看看你们的代码。
2
使用集合!
m = "google"
u = set(m)
sorted([(l, m.count(l)) for l in u])
>>> [('e', 1), ('g', 2), ('l', 1), ('o', 2)]