我有以下問題,同時試圖做一些節點分析:刪除重複和維持秩序時,列表中的元素是列表本身
例如:
my_list=[[1,2,3,1],[2,3,1,2],[3,2,1,3]]
我想編寫一個函數,以下列方式處理my_list中的element_list:
- my_list列表中某些元素的出現次數並不重要,只要列表中的唯一元素是一樣的,它們是相同的。
根據上述前提找到相同的循環,只保留 的第一個並忽略其他相同的my_list列表,同時保留 的順序。
因此,在上面的例子中,函數應該返回第一個列表[1,2,3,1],因爲my_list中的所有列表基於上述前提是相等的。
我在python中寫了一個函數來做到這一點,但我認爲它可以縮短,我不知道這是否是一種有效的方法。這裏是我的代碼:
def _remove_duplicate_loops(duplicate_loop):
loops=[]
for i in range(len(duplicate_loop)):
unique_el_list=[]
for j in range(len(duplicate_loop[i])):
if (duplicate_loop[i][j] not in unique_el_list):
unique_el_list.append(duplicate_loop[i][j])
loops.append(unique_el_list[:])
loops_set=[set(x) for x in loops]
unique_loop_dict={}
for k in range(len(loops_set)):
if (loops_set[k] not in list(unique_loop_dict.values())):
unique_loop_dict[k]=loops_set[k]
unique_loop_pos=list(unique_loop_dict.keys())
unique_loops=[]
for l in range(len(unique_loop_pos)):
unique_loops.append(duplicate_loop[l])
return unique_loops
它需要成爲一個列表嗎?不能/不應該使用集合數據結構而不是列表? – Jordan
另外,Python不使用';'。 –
@limelights:在我訪問python之前就開始使用C#和Java,這是我3年前使用的短時間的語言。因此養成了這種習慣; –