강의로 돌아가기
431257

파이썬 4번오류(변수받기 오류)

def solution(array, commands):
    answer = []
    for i in commands:
        array_sorted = array[i[0] -1 : i[1]].sort()
        order = i[2] - 1
        array_sorted = array_sorted[order]
        answer.append(array_sorted)

    return answer

위의 4번열

array_sorted = array[i[0] -1 : i[1]].sort()

부분에서 sort를 바로시켜서 변수에 담을려고 했는데 오류가 나네요.
변수를 먼저 받고 sort시키면 오류 안나는데 왜 바로 변수를 받으면 오류가 나는걸까요.

array_sorted = array[i[0] -1 : i[1]]
array_sorted.sort()

이렇게 하면 오류가 발생되지 않습니다.

1 개의 답변
전혜린

파이썬의 sort() 메소드는 기존의 리스트를 정렬된 상태로 변경하고, sorted() 라는 내장 함수는 이터러블 객체로부터 정렬된 객체를 새로 생성해 반환합니다.
sort() 메소드는 리스트 내의 값을 정렬할 뿐 별다른 반환값을 주지 않기 때문에
array_sorted = array[i[0] -1 : i[1]].sort() 에서는 에러가 발생합니다. 변수에 할당해줄 것이 없기 때문입니다.
정렬된 리스트를 변수에 바로 할당시켜주고 싶다면
array_sorted = sorted(array[i[0] -1 : i[1]]) 이렇게 sorted 내장함수를 활용하시면 됩니다.

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다.