산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> python

파이썬 리스트에서 중복 요소 제거하는 8가지 방법

리스트는 정수, 문자열, 커스텀 객체 등 순서가 있는 아이템 컬렉션을 담는 파이썬의 기본 데이터 구조입니다. 다른 언어의 배열에 해당합니다.

아래는 순서 보존과 가독성을 유지하면서 리스트에서 중복 요소를 제거하는 검증된 기법들입니다.

set을 사용한 중복 제거

파이썬 내장 set() 함수는 고유한 요소만 반환하여 중복을 제거합니다. 리스트를 set으로 변환한 뒤 다시 리스트로 변환하여 컬렉션 형태를 유지합니다.

my_list = [1,1,2,3,2,2,4,5,6,2,1]
my_final_list = set(my_list)
print(list(my_final_list))

출력:

[1, 2, 3, 4, 5, 6]

임시 리스트를 사용한 중복 제거

빈 리스트를 생성하고 원본 리스트를 순회하며 아직 보지 못한 항목만 추가하는 방식입니다.

my_list = [1, 2, 3, 1, 2, 4, 5, 4 ,6, 2]
print("List Before ", my_list)
temp_list = []
for i in my_list:
    if i not in temp_list:
        temp_list.append(i)
my_list = temp_list
print("List After removing duplicates ", my_list)

출력:

List Before [1, 2, 3, 1, 2, 4, 5, 4, 6, 2]
List After removing duplicates [1, 2, 3, 4, 5, 6]

OrderedDict(또는 dict.fromkeys) 사용

파이썬 3.5+에서는 일반 dict가 삽입 순서를 보존하므로 dict.fromkeys()로 고유 값을 순서대로 유지할 수 있습니다.

my_list = ['a','x','a','y','a','b','b','c']
my_final_list = dict.fromkeys(my_list)
print(list(my_final_list))

출력:

['a', 'x', 'y', 'b', 'c']

단순 for-루프로 중복 제거

리스트를 순회하며 이전에 나타나지 않은 항목만 새 리스트에 추가합니다.

my_list = [1,2,2,3,1,4,5,1,2,6]
myFinallist = []
for i in my_list:
    if i not in myFinallist:
        myFinallist.append(i)
print(myFinallist)

출력:

[1, 2, 3, 4, 5, 6]

리스트 컴프리헨션으로 중복 제거

리스트 컴프리헨션은 간결한 문법으로 가독성을 유지합니다.

my_list = [1,2,2,3,1,4,5,1,2,6]
my_finallist = []
[my_finallist.append(n) for n in my_list if n not in my_finallist]
print(my_finallist)

출력:

[1, 2, 3, 4, 5, 6]

NumPy의 unique()로 중복 제거

NumPy의 unique() 함수는 배열의 정렬된 고유 요소를 반환합니다.

import numpy as np
my_list = [1,2,2,3,1,4,5,1,2,6]
myFinalList = np.unique(my_list).tolist()
print(myFinalList)

출력:

[1, 2, 3, 4, 5, 6]

Pandas의 unique()로 중복 제거

Pandas도 리스트류 객체에서 작동하는 가벼운 unique() 메서드를 제공합니다.

import pandas as pd
my_list = [1,2,2,3,1,4,5,1,2,6]
myFinalList = pd.unique(my_list).tolist()
print(myFinalList)

출력:

[1, 2, 3, 4, 5, 6]

enumerate()와 리스트 컴프리헨션으로 중복 제거

enumerate()와 리스트 컴프리헨션을 결합하면 각 요소의 첫 출현을 보존하면서 중복을 제거할 수 있습니다.

my_list = [1,2,2,3,1,4,5,1,2,6]
my_finallist = [i for j, i in enumerate(my_list) if i not in my_list[:j]]
print(my_finallist)

출력:

[1, 2, 3, 4, 5, 6]

요약

python

  1. 파이썬 데이터 타입 마스터하기: 실전 가이드
  2. 파이썬 연산자 마스터하기: 종합 가이드
  3. 파이썬 pass 문 마스터하기: 실전 가이드
  4. 파이썬 함수 인자 마스터하기: 위치, 키워드, 기본 매개변수
  5. 파이썬 range() 함수 마스터하기: 기초부터 고급 활용까지
  6. 파이썬 리스트 마스터하기: Append, 정렬, 길이 & 리스트 컴프리헨션 실전 가이드
  7. 파이썬으로 평균 계산하기: 실전 가이드
  8. 파이썬 list.count() 전문가 가이드: 실전 예제로 배우는 요소 개수 세기
  9. 파이썬 리스트에서 항목 제거하기: remove(), pop(), clear(), del 완벽 가이드
  10. 파이썬 list.index() – 요소 위치 찾기 실전 예제와 대안 기법