huge_list
參數類似於[[12,12,14],[43,356,23]]
。我的代碼轉換列表設置爲:爲什麼在Cython中將列表轉換爲集需要很多時間?
cpdef list_to_set(list huge_list):
cdef list ids
cdef list final_ids=[]
for ids in huge_list:
final_ids.append(set(ids))
return final_ids
我有2800個列表元素,每個有30,000個id。大約需要19秒。如何提高性能?
EDIT 1:
代替set
我在numpy
使用unique
如下面和numpy
速度高達通過〜7秒:
df['ids'] = df['ids'].apply(lambda x: numpy.unique(x))
現在需要14秒(以前有人〜 20秒)。我不認爲這一次是可以接受的。 :|
1)'final_ids'是一個列表,而不是一個集合? 2)'my_set = set(some_list)'有什麼問題(不使用Cython)? – DavidW
@DavidW,TypeError:不可用類型:'list'。 – ALH
夠公平的,這是有道理的。不知道你的代碼上面的作品雖然(final_ids沒有更新,我認爲?) – DavidW