PySchool-列表(主题6-22)

时间:2011-10-06 18:32:06

标签: python

我是python的初学者,我正在尝试解决有关列表的一些问题。我遇到了一个问题,我无法解决它:

  

编写一个以单词作为参数的函数countLetters(word)   并返回一个列表,计算每个字母的次数   出现。字母必须按字母顺序排序。

     

例如:

>>> countLetters('google')

[('e', 1), ('g', 2), ('l', 1), ('o', 2)]

我无法计算每个角色的出现次数。对于排序我正在使用sorted(list),我也使用dictionary(items functions)这种格式的输出(列表元组)。但我无法将所有这些事情联系起来。

3 个答案:

答案 0 :(得分:2)

使用套装!

 m = "google"
 u = set(m)
 sorted([(l, m.count(l)) for l in u]) 


 >>> [('e', 1), ('g', 2), ('l', 1), ('o', 2)]

答案 1 :(得分:1)

提示:请注意,您可以使用与python中的列表或其他可迭代对象相同的方式遍历字符串:

def countLetters(word):

  for letter in word:
    print letter

countLetters("ABC")

输出将是:

A
B
C

因此,不要打印,而是使用循环来查看您所拥有的字母(在letter变量中)并以某种方式计算它。

答案 2 :(得分:1)

最后,成功了!!!

import collections
def countch(strng):
    d=collections.defaultdict(int)
    for letter in strng:
        d[letter]+=1
    print sorted(d.items())

这是我的解决方案。现在,我可以请求您解决此问题。我很乐意看到您的代码。