본문 바로가기
(Python)파이썬/(Python)파이썬 문법

파이썬 - 리스트 중복 제거하기(다양한 방법) + 예제

by 공부가싫다가도좋아 2021. 6. 9.
반응형

파이썬 리스트 중복제거


문제를 풀고나서 어떤 방법이 활용됐는지 더보기를 눌러 확인 하세요.

더보기

1. set함수

ex) arr = [1, 1, 3, 5, 5, 6]

print(set(arr))

# {1, 3, 5, 6}

 

2.딕셔너리

ex) arr = [1, 1, 3, 5, 5, 6]

dic = {arr[i]:i for i in range (len(arr))}

for key in dic.keys:

  print(key, end=' ')

# 1 3 5 6

 

예제1 (쉬움)


문제

리스트의 중복을 제거해주는 프로그램을 만들어라.


입력

첫째줄에는 리스트 원소들이 주어지며, 각 원소마다 한 칸의 공백이 있다.

출력

첫 째줄에 중복이 제거된 리스트 원소들이 출력된다. 원소들의 순서는 제일 작은 것부터 출력한다


예제 입력/출력

입력 출력
1 1 5 6 0 1 2 -10 -10 0 1 2 5 6

풀이 (자신이 만들어 본 후 hint를 보세요.)

더보기

1. set() 만 쓸 경우 중복이 제거되고, 순서도 정렬 되지만 음수가 정렬이 제대로 안된다.

2. sort함수도 함께 쓸것.


코드

arr = list(map(int, input().split()))

print(*sorted(set(arr)), sep=" ")

#여기서 *표시는 리스트 형식을 지워주기 위해 쓰이고, 
#sep=" "은 원소마다 공백으로 띄어주기 위해서다

예제2 (보통)


문제

리스트의 중복을 제거해주는 프로그램을 만들어라.


입력

첫 째줄에는 리스트 원소들이 주어지며, 각 원소마다 한 칸의 공백이 있다.

출력

첫 째줄에 중복이 제거된 리스트 원소들이 출력된다. 원소들의 순서는 입력한 순으로 출력된다.


예제 입력/출력

입력 출력
1 1 5 6 0 1 2 -10 1 5 6 0 2 -10
입력 출력
9 8 -9 6 -2 4 -1 6 1 1 9 8 -9 6 -2 4 -1 1

풀이 (자신이 만들어 본 후 hint를 보세요.)

더보기

1. 중복이 되지 않는 값 하면 딕셔너리의 키값이 떠오른다.

딕셔너리를 활용하여 풀어보자.


코드

arr = list(map(int, input().split()))

arr2 = {arr[i]:i for i in range (len(arr))}

for key in arr2.keys():
  print(key, end=' ')

또 다른 방법이 생각난다면 포스팅 하겠습니다 :)

다른 방법으로 푸신 분 계시면 댓글로 공유해주세요~

 

도움이 되셨다면 왼쪽 하단 하트 꾹 부탁드려요

반응형

댓글