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