Python 使用for循环计数字符串
我不知道我做错了什么。当我输入一个字符串时,它返回字母,但只给出1的出现。有人能告诉我我做错了什么吗Python 使用for循环计数字符串,python,Python,我不知道我做错了什么。当我输入一个字符串时,它返回字母,但只给出1的出现。有人能告诉我我做错了什么吗 def printDictionary(a): c=sorted(a) for char in c: print(char, c.count(char)) PS我是python新手在传递字符串时似乎可以工作: >>> printDictionary('abcaab') a 3 a 3 a 3 b 2 b 2 c 1 因此,我假设您正在将字典传
def printDictionary(a):
c=sorted(a)
for char in c:
print(char, c.count(char))
PS我是python新手在传递字符串时似乎可以工作:
>>> printDictionary('abcaab')
a 3
a 3
a 3
b 2
b 2
c 1
因此,我假设您正在将字典传递给printdirectionary()
(似乎只符合逻辑)
线路
c=sorted(a)
将字典a
的排序键分配给c
。由于字典键是唯一的,所以字典中只能有该键的一个实例,因此c.count(char)
始终返回1
>>> printDictionary(dict(a=1,b=10,zz=22,ABC=1033))
ABC 1
a 1
b 1
zz 1
假设你有这本字典:
{'a': ['ant', 'abacus'], 'b': ['bear']}
您希望获得以下输出:
a 2
b 1
然后使用此功能:
def printDictionary(dictionary):
keys = sorted(dictionary)
for key in keys:
print(key, len(dictionary[key]))
你能提供一些你将使用的输入和预期的输出吗?当我为“苹果”运行这个时,我得到('a',1)('e',1)('l',1)('p',2)('p',2)。这其中有什么你不喜欢的?作为旁注,虽然自己学习如何做是值得的(特别是如果这是一个类赋值),但在实际代码中,你可能只想使用
c=collections.Counter(a)
,然后对于char,按排序(c.items()):print(char,count)
。不清楚你传递了什么,你能提供示例输入和预期输出吗?我试图得到一个输出,没有元组、列表和字典,但是,感谢所有的输入。