【发布时间】:2014-01-10 12:42:21
【问题描述】:
如何返回前 n 个最常出现的字符及其各自的计数 # 例如 'aaaaaabbbbcccc'、2 应该在 python 中返回 [('a', 6), ('b', 4)]
我试过了
def top_chars(input, n):
list1=list(input)
list3=[]
list2=[]
list4=[]
set1=set(list1)
list2=list(set1)
def count(item):
count=0
for x in input:
if x in input:
count+=item.count(x)
list3.append(count)
return count
list2.sort(key=count)
list3.sort()
list4=list(zip(list2,list3))
list4.reverse()
list4.sort(key=lambda list4: ((list4[1]),(list4[0])), reverse=True)
return list4[0:n]
pass
但它不适用于输入 ("aabc",2) 它应该给出的输出是
[('a', 2), ('b', 1)]
但我得到的输出是
[('a', 2), ('c', 1)]
【问题讨论】:
-
第一个样本中有 6 个
a字符,而不是 5 个。
标签: python