def solution(num_list):
if num_list[-2] < num_list[-1]:
num_list.append(num_list[-1]-num_list[-2])
# 중요 - append() 메서드는 None을 반환 #
else:
num_list.append(num_list[-1]*2)
return num_list
처음에 answer = num_list.append(num_list[-1]-num_list[-2])
했다가 틀림. 이유는
num_list.append(num_list[-1] - num_list[-2])와 answer = num_list.append(num_list[-1] - num_list[-2])는 서로 다른 동작을 수행합니다.
num_list.append(num_list[-1] - num_list[-2]): 이 코드는 num_list 리스트의 마지막 원소와 그 이전 원소의 차를 계산한 후, 그 결과를 num_list 리스트에 추가합니다. 즉, num_list 리스트를 변경하고, append() 메서드는 None을 반환하기 때문에 num_list에 새로운 요소가 추가되긴 하지만, answer 변수에는 반환되는 값인 None이 할당됩니다.
answer = num_list.append(num_list[-1] - num_list[-2]): 이 코드는 먼저 num_list 리스트의 마지막 원소와 그 이전 원소의 차를 계산한 후, 그 결과를 num_list 리스트에 추가합니다. 그런 다음, append() 메서드는 None을 반환하고, 이 반환된 None이 answer 변수에 할당됩니다. 즉, answer 변수에는 None이 할당되며, num_list 리스트에는 새로운 요소가 추가됩니다.
따라서 두 코드의 차이는 num_list의 변경 여부와 answer 변수에 할당되는 값의 차이입니다. 첫 번째 코드는 num_list를 변경하고 answer에는 아무런 의미 없는 None이 할당되지만, 두 번째 코드는 num_list를 변경하고 answer에는 None이 할당됩니다.
(출처: chat-GPT)