1. ホーム
  2. Python

python のエラーです。AttributeError: 'list' オブジェクトには 'sorted' という属性がありません。

2022-02-21 18:13:23

リスト学習エラーです。AttributeError: 'list' オブジェクトには 'sorted' という属性がありません。

sort()とsorted()の違いに注意を払わない

sort() is a method, sorted() is a function, methods are calls, functions do data passing


では、その違いについて。

#3.3.1 Permanent sorting of queues using sort()
cars=['bmw','audi','toyato','subaru']
print(cars)
cars.sort()
print(cars)
##sort() method permanently sorts the list in alphabetical order and can never be restored
##sort in reverse alphabetical order
cars.sort(reverse=True)
print(cars)
##Pass the parameter reverse=True to the sort() method
## Use the sort() function to temporarily sort the list
cars=['bmw','audi','toyato','subaru']
print(sorted(cars))
print(cars)
##So the sorted() function doesn't change the original order of the list
##Note that sorted() is a function, so the elements of the list should be passed into the function
print(sorted(cars,reverse=True))
print(cars)
## pass the list and reverse=True to the sorted() function in reverse order
## Note the mistake here, sort() is a method, sorted() is a function, method is a call, function does data transfer


sorted() は、新しいリストを返す関数です。

x=sorted(cars)

print(x) carsリストの中身は変わっていない

cars.sort() 元のリストは直接メソッドを呼び出すので、ソートされて元に戻らなくなる