3
我有一個名爲ids
的ID列表。 ids
中的每個元素都是一個字符串。一個id
可以在此列表中存在多次。優化字典創建
我的目標是創建一個字典,其中出現次數作爲關鍵字,而值是經常出現的ID列表。 我目前的做法是這樣的:
from collections import defaultdict
import numpy as np
ids = ["foo", "foo", "bar", "hi", "hi"]
counts = defaultdict(list)
for id in np.unique(ids):
counts[ids.count(id)].append(id)
輸出:
print counts
--> defaultdict(<type 'list'>, {1: ['bar'], 2: ['foo', 'hi']})
這工作得很好,如果ID列表不會太長。但是,對於更長的列表來說,表現相當糟糕。
我該如何讓這個更快?
你真的需要NumPy嗎?您可以使用'for set(ids)'中的id來代替。另外,你做的和'collections.Counter'幾乎一樣,也許你可以考慮一下想法。 – ForceBru