我给了n个单词(1≤n≤10^ 5).有些词可能重复.对于每个单词,我必须输出它出现的次数.但输出顺序应与单词首次出现的顺序一致.
我有一个问题的工作程序,但对于大输入我正在超时.这是我解决问题的方法:
n=int(input()) l=[] ll=[] for x in range(n): l.append(raw_input()) if l[x] not in ll: ll.append(l[x]) result = [ l.count(ll[x]) for x in range(len(ll)) ] for x in range(len(result)): print result[x],
jme.. 5
由子类使用一个有序计数器OrderedDict
和Counter
:
from collections import Counter, OrderedDict class OrderedCounter(Counter, OrderedDict): pass counts = OrderedCounter(['b', 'c', 'b', 'b', 'a', 'c']) for k, c in counts.items(): print(k, c)
哪个印刷品:
b 3 c 2 a 1
查看文档的collections
模块更完整的配方,其中包括一__repr__
对OrderedCounter
.
由子类使用一个有序计数器OrderedDict
和Counter
:
from collections import Counter, OrderedDict class OrderedCounter(Counter, OrderedDict): pass counts = OrderedCounter(['b', 'c', 'b', 'b', 'a', 'c']) for k, c in counts.items(): print(k, c)
哪个印刷品:
b 3 c 2 a 1
查看文档的collections
模块更完整的配方,其中包括一__repr__
对OrderedCounter
.