[Python] Get unique values from a list

Posted in :

我有一個 array 想取出不重覆的項目。

解法1:

my_list = list(set(my_list))

上面解法,是很快,但 order 會亂掉。


Maintaining order:

# oneliners
# slow -> . --- 14.417 seconds ---
[x for i, x in enumerate(array) if x not in array[0:i]]

# fast -> . --- 0.0378 seconds ---
[x for i, x in enumerate(array) if array.index(x) == i]

# multiple lines
# fastest -> --- 0.012 seconds ---
uniq = []
[uniq.append(x) for x in array if x not in uniq]
uniq

Order doesn’t matter:

# fastest-est -> --- 0.0035 seconds ---
list(set(array))

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *