코딩 실행과정에서 왜 0이 없어지는지 모르겠어요
if __name__ == "__main__":
    num_list1 = [5, 5, -1, 3, -9, 0, 2, 3]
else: from __main__ import *

Max = max(num_list1)
Min = min(num_list1)
num_list2 = []
for num in num_list1:
  if num == Max:
    num_list1.remove(Max)
  elif num == Min:
    num_list1.remove(Min)
  else:
    num_list2.append(num)
num_list2

최댓값과 최솟값을 모두 제외하고, 나머지 값을 num_list2에 넣어서 출력하면 [-1, 3, 0, 2, 3]이 나와야 정상인데, 마지막 num_list2의 결과를 보니까 [-1, 3, 2, 3]로 뜨더라구요?

근데 0이 도대체 왜 빠지는지 모르겠습니다

파이썬 코린이를 도와주세요 ㅜㅠ

ganzhang88 287

M 2022년 4월 16일 11:40 오전

목록으로
1개의 답변이 있습니다. 1 / 1 Page

파이썬의 작동 원리와 관련이 있는 듯합니다.
num_list1에서 [5, 5, -1, 3, -9, 0, 2, 3]
for 첫번째 항목 num 5를 가져와 num_list1.remove(Max)에 의해 제거하면
num_list1이 [ 5, -1, 3, -9, 0, 2, 3]로 바뀌고
다음 num을 가져오는데 첫번째 5를 가져오는 게 아니고 아까 첫번째 요소를 가져왔으니
이번엔 두번째 요소 -1을 가져옵니다. -1은 num_list2에 추가
다음 세번째 num은 3, num_list2에 추가
다음 네번째 num은 -9 제거
그럼 num_list1은 [5, -1, 3, 0, 2, 3]로 바뀌고
그럼 다섯번째 num은 0을 건너뛰고 2를 가져와서 num_lsit2에 추가
다음 여섯번재 num 3을 가져와서 num_lsit2에 추가

그럼 마지막에 num_list1은 [5, -1, 3, 0, 2, 3] (첫번째 5는 max로 -9는 min으로 제거)
num_list2는 [-1, 3, 2, 3]이 남습니다.

코코리

2022년 4월 16일 9:02 오후