PySchool- 列表(主题 6-22)

2 投票
3 回答
1296 浏览
提问于 2025-04-17 03:48

我刚开始学习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)]

撰写回答