Hum*_*mad 0 python optimization word-count
我给了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],
Run Code Online (Sandbox Code Playgroud)
由子类使用一个有序计数器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)
Run Code Online (Sandbox Code Playgroud)
哪个印刷品:
b 3
c 2
a 1
Run Code Online (Sandbox Code Playgroud)
查看文档的collections模块更完整的配方,其中包括一__repr__对OrderedCounter.
| 归档时间: |
|
| 查看次数: |
77 次 |
| 最近记录: |