인프런 커뮤니티 질문&답변
방법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
0
0






