강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của zettakim
zettakim

câu hỏi đã được viết

Bắt đầu lập trình: Thử thách! 45 bài tập về ngữ pháp cơ bản của Python (Inflearn Original)

Xóa trùng lặp (Remove Duplicates)

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

Viết

·

100

·

Đã chỉnh sửa

0

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

[요구하는 답]

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

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

python

Câu trả lời 4

1

niceman님의 프로필 이미지
niceman
Người chia sẻ kiến thức

여러 방법이 있지만,

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
Người đặt câu hỏi

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

0

Zetta Kim님의 프로필 이미지
Zetta Kim
Người đặt câu hỏi

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

image.png

 

 

0

niceman님의 프로필 이미지
niceman
Người chia sẻ kiến thức

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

Hình ảnh hồ sơ của zettakim
zettakim

câu hỏi đã được viết

Đặt câu hỏi