이 때 순서를 유지 나는 몇 마디 분석하려고 노력하는 동안 다음과 같은 문제가있다 : 예를 들어중복을 제거하고 목록 내부 요소 목록 자체
:
my_list=[[1,2,3,1],[2,3,1,2],[3,2,1,3]]
내가 함수를 작성 할을 그 my_list 안에있는 element_list를 다음과 같이 처리합니다.
- my_list 목록 내의 특정 요소의 출현 횟수는 중요하지 않으며 목록의 고유 요소 동일하다, 그들은 동일하다.
위의 전제를 기반으로 동일한 루프를 찾고 을 그대로 유지하고 을 그대로 유지하면서 my_list의 다른 동일한 목록을 무시하십시오.
따라서 위의 예에서 함수는 my_list 내부의 모든 목록이 위의 전제에 따라 동일하므로 [1,2,3,1] 인 첫 번째 목록 만 반환해야합니다.
파이썬에서이 작업을 수행하는 기능을 썼지 만 단축 할 수 있다고 생각합니다. 효율적인 방법은 아닌지 잘 모르겠습니다.
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
또한 파이썬은';'을 사용하지 않습니다. –
@limelights : Python을 방문하기 전에 C#과 Java로 놀았습니다. 3 년 전에 잠깐 사용했던 언어입니다. 따라서 습관이 생겼다. –