sort()는 리턴값이 없고 제자리 정렬을 하기 때문에 names라는 원본 배열의 값이 정렬이 되었고, print를 했을 때 names가 정렬이 되어 있습니다. 하지만 sorted()는 원본 배열을 건들지 않고 정렬한 원소들의 sequence를 리턴하여주는 메서드 이기때문에 원본 배열을 그대로 존재합니다. (변동없음) 그래서 print를 했을 때 names가 정렬이 되지 않고 원본(정렬하기 전) 배열이 출력됩니다.

sotred()의 원본 배열을 바꿔주고 싶다면 변수에 담아서 리턴해준다.

names.sorted()
print(names) // ["break", "fast", "car", "apple", "drive", "ensure", "gear"]

names.sort()
print(names) // ["apple", "break", "car", "drive", "ensure", "fast", "gear"]

names = names.sorted()
print(names) // ["apple", "break", "car", "drive", "ensure", "fast", "gear"]

https://nareunhagae.tistory.com/32