2
我想實現的是list
轉換成set
並返回結果:爲什麼在Cython中將列表轉換爲集合不起作用?
cpdef list_to_set(list huge_list):
cdef list ids
cdef set final_ids=()
for ids in huge_list:
final_ids.update(set(ids))
return final_ids
我這樣稱呼它:
from core import list_to_set
.
.
.
list_to_set.list_to_set(list(dataframe['ids'].values))
我得到下面的錯誤:
TypeError('Expected set, got tuple',)
爲什麼它應該是一個元組以及它爲什麼期望一個不是列表,因爲我一直在發送一個列表?
EDIT 1:
爲了簡單我用下面的函數,得到了相同錯誤的問題:
list_to_set.list_to_set([[12,14], [5,6]])
通常需要大約19秒才能將列表變爲集合!沒有辦法改進它嗎? – ALH
@AlirezaHos,你可以將'final_ids.update(set(ids))'改成'final_ids.update(id)',因爲'set.update'接受任何可迭代的。 – falsetru
我應該提到'final_ids'是一組列表,因此將其更改爲'cdef list final_ids = []',然後將集合添加到此列表中。 – ALH