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 답변
-
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)
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력