Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python – 중복 요소 열 제거

<시간/>

중복 요소의 열을 제거해야 하는 경우 빈 집합을 만드는 메서드가 정의됩니다. 목록은 반복되며, 찾지 못하면 집합에 추가됩니다.

아래는 동일한 데모입니다.

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' 값이 ​​정의됩니다.

  • 메서드는 반복하여 호출됩니다.

  • 집합으로 변환되어 변수에 할당됩니다.

  • 다시, 열거되고 반복되어 결과 변수에 저장됩니다.

  • 이 결과 변수는 콘솔에 출력으로 표시됩니다.