我在尝试进行一些节点分析时遇到以下问题:
例如:
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