파이썬 리스트 중복제거
문제를 풀고나서 어떤 방법이 활용됐는지 더보기를 눌러 확인 하세요.
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=' ')
또 다른 방법이 생각난다면 포스팅 하겠습니다 :)
다른 방법으로 푸신 분 계시면 댓글로 공유해주세요~
도움이 되셨다면 왼쪽 하단 하트 꾹 부탁드려요
'(Python)파이썬 > (Python)파이썬 문법' 카테고리의 다른 글
(파이썬) 리스트 요소 조합하기/ permutations & combinations (0) | 2021.06.18 |
---|---|
(파이썬) 파이썬 소문자 알파벳만 나열/ 대문자 알파벳만 나열 (0) | 2021.06.17 |
파이썬 - 리스트 원소 개수 구하기/collections모듈의 Counter클래스 활용 예제 (0) | 2021.06.02 |
파이썬 - 리스트 정렬, for문 을 사용한 예제/백준2750번 (0) | 2021.05.26 |
(Python)파이썬: 최대값,최소값 구하기 - list 리스트 활용(Max(),min())/삼항연산자 활용/and,or 삼항연산자 활용 (0) | 2021.02.27 |
댓글