2013-05-09 1 views

答えて

32

.sort().reverse()場所にリストを変更し、Noneを返す:

私はこれらの2つの方法から結果を得ることができる方法を教えてくださいsort()およびreverse()メソッドは、大きなリストをソートまたは逆転するときに、省スペースのためにリストを変更します。それらが副作用によって動作することを思い出させるために、ソートされたリストまたは逆のリストを返しません。

a.sort() 
print(a) 
a.reverse() 
print(a) 

またはsorted()reversed()機能を使用します。

は、代わりにこれを行います。

print(sorted(a))    # just sorted 
print(list(reversed(a)))  # just reversed 
print(a[::-1])     # reversing by using a negative slice step 
print(sorted(a, reverse=True)) # sorted *and* reversed 

これらのメソッドは、新しいリストを返し、そのまま元の入力リストを残します。

デモは、インプレース並べ替えと反転:

>>> a = [66.25, 333, 333, 1, 1234.5] 
>>> a.sort() 
>>> print(a) 
[1, 66.25, 333, 333, 1234.5] 
>>> a.reverse() 
>>> print(a) 
[1234.5, 333, 333, 66.25, 1] 

また、新しいソートを作成し、リストを反転さ:

>>> a = [66.25, 333, 333, 1, 1234.5] 
>>> print(sorted(a)) 
[1, 66.25, 333, 333, 1234.5] 
>>> print(list(reversed(a))) 
[1234.5, 1, 333, 333, 66.25] 
>>> print(a[::-1]) 
[1234.5, 1, 333, 333, 66.25] 
>>> print(sorted(a, reverse=True)) 
[1234.5, 333, 333, 66.25, 1] 
>>> a # input list is untouched 
[66.25, 333, 333, 1, 1234.5] 
+2

私はこの質問のすべての重複に対する標準的な答えにする必要があります – jamylak

1

参考のために、あなたはドキュメントhereを見ることができ、具体的言う:

sort()メソッドとreverse()メソッドは、ソートまたはリバーするときにスペースを節約するためにリストを変更します大きなリストを歌う。それらが副作用によって動作することを思い出させるために、ソートされたリストまたは逆のリストを返しません。

マニュアルを読むのを躊躇しないでください!

0

この方法は適切に機能します。

このコードは動作します(のpython 3.xの)

a = [66.25, 333, 333, 1, 1234.5] 
a.sort() 
print(a) 
a.reverse() 
print(a) 

>>> 
[1, 66.25, 333, 333, 1234.5] 
[1234.5, 333, 333, 66.25, 1] 
1

シンプル昇順ソートは、ソート()関数を呼び出して、非常に簡単です。

>>> sorted([66.25, 333, 333, 1, 1234.5]) 
[1, 66.25, 333, 333, 1234.5] 

sorted()boolean値を持つreverseパラメータを受け入れます。

>>> sorted([66.25, 333, 333, 1, 1234.5], reverse=True) 
[1234.5, 333, 333, 66.25, 1] 
+0

私はPython 2.xの答えが必要なので、これは私のために働いた:) – randombee

関連する問題