1樓:
不是a = [...]
num_unique = len(set(a))就好了?
如果要計數,用
import collections
counter = collections.Counter(a)
2樓:鬍子
我用試了一下原生的python 十萬個list計數也沒那麼慢啊。。。
MAC下跑100個loop大約1.13s
如果用100萬資料跑1個loop大約是1s另外,看目前排第一的答案,考慮到型別轉換的損失,所以不那麼快了
import
collections
defcount
(iterable
):result
=collections
.defaultdict
(lambda:0
)for
number
initerable
:result
[number]+=
1return
result
,len
(result
.values
())import
timeit
import
randomli=
[random
.randint(0
,100
)foriin
xrange
(100000
)]if
__name__
=='__main__'
timeit
.timeit
(stmt
="count(li)"
,setup
="from __main__ import count,li"
,number
=100
) if kwdsself.update(kwds)每次迭代中不斷的使用self_get,讀取預設值,會有效能的損失。
在python中,怎樣計算list的累積和?不能用loop或者library的function。
小小 def sum list list if len list 0 return 0 else return list 0 sum list list 1 greedisgood import numpy as np def cumsum list return np.array list cum...
python中,求乙個超大list的笛卡爾積,記憶體會很快溢位。有沒有辦法將生成的結果寫入乙個文字檔案?
黃哥 def cartesian jit arrays34 Generate a cartesian product of input arrays.Parametersarrays list or tuple of arrays 1 D arrays to form the cartesian p...
python的set裡面可以存放list嗎?
長風風 python的set中元素必須是unhashable 不可修改的 因此,可以修改的list就不能作為元素放入set中。元組,字串,整數,浮點都不可變,可以放入set中。而list,字典等放入則會報錯。放入不可變的元素 此外,python支援將list轉化為set,但會過濾掉重複出現的元素。 ...