python에서 for구문과 count()가 이상하게 동작합니다.

조회수 576회
data = [1,2,3,4,5,6,7,8,9,10,11,12,13,14]
for i in data:
    if data.count(i) == 1:
        data.remove(i)
print(data)

output: [2,4,6,8,10,12,14]

하나만 있는 값을 지우려고 했는데 왜 홀수만 작동하나요?

1 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

    data 를 처리하는 for 루틴 내부에서 data를 변경하게 되면 반복자 i 에도 영향을 미치게 됩니다.

    이런 경우에는 아래와 같이 for 루틴 내부에서 다른 리스트에 결과를 저장하는 방식으로 하면 의도한 결과를 얻을 수 있습니다.

    data = [1,2,2,2,3,3,4,4,5,5,6,6,6,7,8,9,10,11,12,13,14]
    output = []
    for i in data:    
        if data.count(i) > 1: # 1개만 존재하는 element는 append 되지 않음
            output.append(i)
    print(output) 
    
    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)