我有以下问题,同时试图做一些节点分析:删除重复和维持秩序时,列表中的元素是列表本身
例如:
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年前使用的短时间的语言。因此养成了这种习惯; –