Python - 리스트 중복 제거

By JS | Last updated: January 02, 2021

List에서 중복된 데이터가 있을 때, 중복된 값을 모두 제거하는 방법을 소개합니다.

예를 들어, original_list에서 중복된 값 22와 10을 제거하여, result_list에는 어떤 데이터도 두개 이상이 들어있지 않도록 만들 수 있습니다.

original_list = [10, 22, 19, 22, 1, 10, 5]
result_list = [10, 22, 19, 1, 5]

다음과 같은 방법으로 중복을 제거할 수 있습니다.

  1. set()
  2. for loop
  3. list comprehension
  4. dict.fromkeys()

1. set()를 이용한 방법

set()는 중복된 값을 허용하지 않습니다. 따라서 list를 set로 변경하면 중복된 값이 제거되며, 그 뒤에 다시 list로 변경하면 중복된 값이 제거된 리스트가 됩니다.

my_list = [10, 22, 19, 22, 1, 10, 5]
result = list(set(my_list))
print(result)

Output:

[1, 5, 10, 19, 22]

2. for loop를 이용한 방법

for loop를 이용하여 직접 중복된 값을 필터링하여 제거할 수 있습니다.

my_list = [10, 22, 19, 22, 1, 10, 5]
result = []

for i in my_list:
    if i not in result:
        result.append(i)

print(result)

Output:

[10, 22, 19, 1, 5]

3. list comprehension을 이용한 방법

다음과 같이 list comprehension으로 구현할 수도 있습니다. for loop로 구현한 것과 거의 유사합니다.

my_list = [10, 22, 19, 22, 1, 10, 5]
result = []
[result.append(x) for x in my_list if x not in result]
print(result)

Output:

[10, 22, 19, 1, 5]

4. dict.fromkeys()

dict.fromkeys()는 dictionary 생성을 위한 key를 추출합니다. key는 중복된 값을 같지 않기 때문에 fromkeys()에서 리스트의 중복된 값들을 제거합니다. 그 리턴 값을 list로 변환할 수 있습니다.

my_list = [1, 2, 3, 2, 5, 1]

new_list = list(dict.fromkeys(my_list))

print(new_list)

Output:

[1, 2, 3, 5]

References

Related Posts

댓글을 보거나 쓰려면 이 버튼을 눌러주세요.
codechachaCopyright ©2019 codechacha