Pythonのリストソート方法

高洛峰
高洛峰オリジナル
2016-11-23 13:27:451605ブラウズ

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

は、次のようにリスト内の要素の順序を逆にします
>>> x = [1,5,2,3,4]
>>> .reverse()
>>> パラメータが並べ替えられます。リスト内のパラメータを並べ替える必要がある場合は、リストの別の並べ替え方法であるsortを使用して、正の順序で並べ替える必要があります。
sort() 並べ替えメソッド

この関数メソッドは、リストの内容の前方並べ替えを実行します。並べ替えられた新しいリストは、元のリストを上書きします (ID は変更されません)。つまり、sort 並べ替えメソッドは、元のリストの並べ替えメソッドを直接変更します。 。
>>> a = [5,7,6,3,4,1,2]
>>> a.sort()
>>> 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 = 並べ替え(a)
>>> a
[5, 7, 6, 3, 4, 1, 2]
>>> , 2, 3, 4, 5, 6, 7]

sorted() メソッドは、任意のデータ型のシーケンスで使用でき、常に返されるのはリストです。 iplaypython.com ')
['.'、'a'、'c'、'h'、'i'、'l'、'm'、'n'、'o'、'o'、'p' , 'p ', 't', 'y', 'y']
3 つの違い

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


sorted() 関数は、可変オブジェクト (リスト、辞書) の固有のメソッドではありません (パラメーター)。リスト、ディクショナリ、タプル、文字列のいずれかを指定できます)。渡されたパラメータに関係なく、リストをコンテナとした戻り値が返されます。それがディクショナリの場合は、キーのリストが返されます。
>>> mystring="54321"
>>> mytuple=(5,4,3,2,1)
>>> 1]
>>> ソート(mystring)
['1', '2', '3', '4', '5']
>>> ソート(mytuple)
[1, 2, 3, 4, 5]
>sorted(mylist)
[1, 2, 3, 4, 5]


reverse() は sort() と同じように使用されます。は、sorted() と同じように使用されます
>>> 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


「反転」効果は、シーケンスをスライスすることでも実現できます
>>> mystring="54321"
>>> ; mytuple=(5,4 ,3,2,1)
>mylist=[5,4,3,2,1]
>mystring[::-1]
' 12345'
>>mytuple[::-1]
(1, 2, 3, 4, 5)
>>> 4、5]

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