중복 요소의 열을 제거해야 하는 경우 빈 집합을 만드는 메서드가 정의됩니다. 목록은 반복되며, 찾지 못하면 집합에 추가됩니다.
예
아래는 동일한 데모입니다.
from itertools import chain def remove_dupes(my_sub): my_string = set() for i, elem in enumerate(my_sub): if elem not in my_string: my_string.add(elem) else: yield i my_list = [[5, 1, 6, 7, 9], [6, 3, 1, 9, 1], [4, 2, 9, 8, 9], [5, 1, 6, 7, 3]] print("The list is : ") print(my_list) K = 3 temp_idxs = set(chain.from_iterable(remove_dupes(sub) for sub in my_list)) my_result = [[elem for i, elem in enumerate( sub) if i not in temp_idxs] for sub in my_list] print("The result is : ") print(my_result)
출력
The list is : [[5, 1, 6, 7, 9], [6, 3, 1, 9, 1], [4, 2, 9, 8, 9], [5, 1, 6, 7, 3]] The result is : [[5, 1, 6, 7], [6, 3, 1, 9], [4, 2, 9, 8], [5, 1, 6, 7]]
설명
-
필요한 패키지를 환경으로 가져옵니다.
-
목록을 매개변수로 사용하는 'remove_dupes'라는 메서드가 정의되어 있습니다.
-
빈 집합이 생성됩니다.
-
목록의 요소가 열거되고 요소가 발견되지 않으면 빈 집합에 추가됩니다.
-
그렇지 않으면 열거의 반복자가 생성됩니다.
-
함수 외부에서 목록의 목록이 정의되어 콘솔에 표시됩니다.
-
'K' 값이 정의됩니다.
-
메서드는 반복하여 호출됩니다.
-
집합으로 변환되어 변수에 할당됩니다.
-
다시, 열거되고 반복되어 결과 변수에 저장됩니다.
-
이 결과 변수는 콘솔에 출력으로 표시됩니다.