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

skeyt2님의 프로필 이미지
skeyt2

작성한 질문수

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

중복 제거(Remove Duplicates)

list comprehension 문의.

작성

·

31

0

안녕하세요 선생님.
먼저 초급자로써.. 강의 잘 듣고 공부 열심히 하고있습니다.

감사합니다.

 

Remove Duplicates 강의 도중 문의가 있어 드립니다.

마지막 list comprehension으로 중복을 제거하려하다 보니..

x = ["a", 1, "b", 2, "a", 3, "b", 4, 5, "b"]

ex6=[]

ex6 = [ i for i in x if i not in ex6 ]

 

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

 

이런식으로 하니 중복이 제거 가 안되고 그냥 전부 다 출력이 되더라구요

ex6의 list 변수 값에 저장이 안되고 처리가 되는지..

아래처럼 별도의 변수에 저장을 하니 잘 출력이 되더라구요.

x = ["a", 1, "b", 2, "a", 3, "b", 4, 5, "b"]

ex4 = []

[ ex4.append(i) for i in x if i not in ex4 ]

 

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

 

list comprehension이 작동하는 원리를 제가 잘 못이해하고 있는건지

잘 몰라서 문의드립니다.

답변 1

0

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

네 맞습니다. 별도의 변수에 저장하셔야 해요!

위에 예제에서 ex6 변수는 스스로 iter 하면서 모든 값을 저장하게 됩니다.

리스트컴프리헨션은 잘 사용하고 계시는 것 같아요!

skeyt2님의 프로필 이미지
skeyt2

작성한 질문수

질문하기