강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

Zetta Kim님의 프로필 이미지
Zetta Kim

작성한 질문수

프로그래밍 시작하기 : 도전! 45가지 파이썬 기초 문법 실습 (Inflearn Original)

중복 제거(Remove Duplicates)

방법2, 방법3의 결과가 요구 출력결과와 다릅니다.

작성

·

32

·

수정됨

0

방법2 OrderedDict과 방법3는 요구하는 정렬이 안되었습니다.

[요구하는 답]

출력 결과 : [1, 2, 3, 4, 5, 'a', 'b']

중복 제거하고 원소의 순서를 유지하는 것을 물어 보신 것 같은데 예시하는 답변은 정렬이 되어있습니다.

답변 4

1

좋은사람님의 프로필 이미지
좋은사람
지식공유자

여러 방법이 있지만,

1 번 방법

 

def dedupe_keep_order(seq):

seen = set()

return [x for x in seq if not (x in seen or seen.add(x))]

data = [1, 2, 3, 1, 2, 5, 3, 7]

print(dedupe_keep_order(data))

출력 : [1, 2, 3, 5, 7]

 

2번 방법(복잡한 원소예시)

data = [

"dog", "cat", "dog", "bird", "cat", "lion",

"tiger", "lion", "dog", "bear", "tiger", "wolf",

"wolf", "cat", "eagle", "bear"

]

 

unique = list(dict.fromkeys(data))

print(unique)]

 

출력 : ['dog', 'cat', 'bird', 'lion', 'tiger', 'bear', 'wolf', 'eagle']

 

 

3번 방식(Set)

seen = set()

unique = [x for x in data if not (x in seen or seen.add(x))]

print(unique)

 

출력 : ['dog', 'cat', 'bird', 'lion', 'tiger', 'bear', 'wolf', 'eagle']

 

등이 있습니다. 코드는 한 번 살펴보고 수정이 필요하면 업데이트 할께요!

0

Zetta Kim님의 프로필 이미지
Zetta Kim
질문자

코드에 문제가 있다는 것이 아니고 출력답안을 [1,2,3,4,5'a','b']이렇게 소트된 상태로 제시하셔서 소트를 하라는 의도로 보여서 말씀드린겁니다.

0

Zetta Kim님의 프로필 이미지
Zetta Kim
질문자

강사님 코드를 말하는 겁니다.

image.png

 

 

0

좋은사람님의 프로필 이미지
좋은사람
지식공유자

안녕하세요 전체 소스코드를 올려주시면 감사드리겠습니다.

Zetta Kim님의 프로필 이미지
Zetta Kim

작성한 질문수

질문하기