使用for循环计数字符串

时间:2014-11-26 02:19:28

标签: python

我不知道自己做错了什么。当我输入一个字符串时,它会给我回信,但只给出了1的出现。有人能说出我做错了吗。

def printDictionary(a):
    c=sorted(a)
    for char in c:
        print(char, c.count(char))

PS我是python的新手

2 个答案:

答案 0 :(得分:0)

传递字符串时似乎有效:

>>> printDictionary('abcaab')
a 3
a 3
a 3
b 2
b 2
c 1

所以我假设你将字典传递给printDictionary()(似乎只是合乎逻辑的)......

该行

c=sorted(a)

c字典a的已排序分配给c.count(char)。由于字典键是唯一的,因此字典中只能存在该键的一个实例,因此>>> printDictionary(dict(a=1,b=10,zz=22,ABC=1033)) ABC 1 a 1 b 1 zz 1 始终返回1.

{{1}}

答案 1 :(得分:0)

假设您有这本词典:

{'a': ['ant', 'abacus'], 'b': ['bear']}

你想得到这个输出:

a 2
b 1

然后使用此功能:

def printDictionary(dictionary):
    keys = sorted(dictionary)
    for key in keys:
        print(key, len(dictionary[key]))