ホームページ  >  記事  >  バックエンド開発  >  Pythonのリストソート方法reverse、sort、sortedを詳しく解説

Pythonのリストソート方法reverse、sort、sortedを詳しく解説

高洛峰
高洛峰オリジナル
2016-10-17 16:40:311504ブラウズ

Python 言語には 3 つのリストの並べ替え方法があります。逆順/逆順並べ替え、順方向並べ替え、並べ替えられたリストを取得するための並べ替えです。より高度なリストの並べ替えでは、後の 2 つの方法で並べ替えの条件パラメータを追加することもできます。

reverse() メソッド

は、次のようにリスト内の要素の順序を逆にします。

>>> x = [1,5,2,3,4]
>>> x.reverse()
>>> x
[4, 3, 2, 5, 1]

リストの逆順並べ替え: 代わりに、元のリスト内の要素を左から右に再格納します。 of リスト内のパラメータがソートされます。リスト内のパラメータを並べ替える必要がある場合は、リストの別の並べ替え方法であるsortを使用して、正の順序で並べ替える必要があります。

sort() 並べ替えメソッド

この関数メソッドは、リストの内容の前方並べ替えを実行します。並べ替えられた新しいリストは、元のリストを上書きします (ID は変更されません)。つまり、sort 並べ替えメソッドは、元のリストの並べ替えを直接変更します。方法。

>>> a = [5,7,6,3,4,1,2]
>>> a.sort()
>>> a
[1, 2, 3, 4, 5, 6, 7]

Python 初心者の多くは、sort() メソッドについて混乱しています。場合によっては、ソートされたリストが必要ですが、ソートされていない元のリストを保存したい場合は、次のようにします。

>>> a = [5,7,6,3,4,1,2]
>>> b = a.sort()
>>> print b
None

この時点で問題が発生し、変数 b が null 値を取得します。では、ソートされたリストを取得したいが、元のリストも保持したい場合はどうすればよいでしょうか? listsorted() メソッドはこれを実現するのに役立ちます。

sorted() メソッド

は、元のリストを保持し、ソートされたリストを取得できます。は常にリストの形式で返されます:

>>> a = [5,7,6,3,4,1,2]
>>> b = sorted(a)
>>> a
[5, 7, 6, 3, 4, 1, 2]
>>> b
[1, 2, 3, 4, 5, 6, 7]

3 つの

sort() の違いは、変数オブジェクト (辞書、リスト) のメソッドであり、パラメーターも戻り値もありません。 ) は変数 Object を変更するため、戻り値は必要ありません。 sort() メソッドは、可変オブジェクトに固有のメソッドまたは属性です。タプルや文字列などの不変オブジェクトには、これらのメソッドがありません。呼び出すと、例外が返されます。

>>> sorted('iplaypython.com')
['.', 'a', 'c', 'h', 'i', 'l', 'm', 'n', 'o', 'o', 'p', 'p', 't', 'y', 'y']

sorted() は Python の組み込み関数であり、可変オブジェクト (リストと辞書) の独自のメソッドではありません。sorted() 関数にはパラメーターが必要です (パラメーターはリストにすることもできます)。辞書、タプル、文字列)、どのようなパラメータを渡しても、リストをコンテナとした戻り値が返されます。辞書の場合は、キーのリストが返されます。

>>> a=[5,4,3,2,1]
>>> a.sort()
>>> 
>>> a
[1, 2, 3, 4, 5]


reverse()はsortと同じように使用され、reversed()はsorted()と同じように使用されます

>>> mystring="54321"
>>> mytuple=(5,4,3,2,1)
>>> mylist=[5,4,3,2,1]
>>> sorted(mystring)
['1', '2', '3', '4', '5']
>>> sorted(mytuple)
[1, 2, 3, 4, 5]
>>> sorted(mylist)
[1, 2, 3, 4, 5]


「反転」も可能シーケンスをスライスすることで達成されます

>>> mylist=[5,4,3,2,1]
>>> mylist.reverse()
>>> mylist
[1, 2, 3, 4, 5]
>>> mylist=[5,4,3,2,1]
>>> for i in reversed(mylist):
...   print i,
... 
1 2 3 4 5



の効果

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。