Pythonのsort()
sort 関数を使用すると、リストを昇順と降順の両方で並べ替えることができます。整数、浮動小数点数、文字列などのリストを並べ替えるのに使用できます。 パイソン 。その時間計算量は O(NlogN) です。
Python の sort() 構文
Python の sort() 関数の構文は次のとおりです。
構文: list_name.sort(key=…, reverse=…)
パラメーター:
デフォルトでは、Python sort() は追加のパラメーターを必要とせず、リストを昇順に並べ替えます。ただし、次の 2 つのオプションのパラメータがあります。
- 鍵: ソート比較のキーとなる関数
- 逆行する: true の場合、リストは降順で並べ替えられます。
戻り値: sort() は何も返しませんが、渡されたパラメータに従って元のリストを変更します。
Pythonのsort()関数とは何ですか?
Python では、 sort()> function は list に属するメソッドです。これは、Python またはリストの要素をデフォルトで昇順に並べ替えるために使用されます。の sort()> このメソッドは、元のリストをその場で変更します。つまり、新しい並べ替えられたリストを作成するのではなく、既存のリスト オブジェクト内で要素を直接再配置します。
Python の Sort() の例
Python の sort() メソッドの基本的な例。
例 : この例では、以下のコードは次の名前のリストを定義します。 unsorted_list> 数値要素を使用します。の sort()> 次に、メソッドがリストに適用され、その要素が昇順に並べ替えられます。次に、並べ替えられたリストが印刷され、並べ替え操作の結果が表示されます。
Python3
unsorted_list> => [> 2> ,> 4> ,> 5> ,> 32> ,> 6> ,> 255> ,> 5> ,> 42> ]> unsorted_list.sort()> print> (> 'Now it is sorted:'> , unsorted_list)> |
出力:
Now it is sorted: [2, 4, 5, 5, 6, 32, 42, 255]
Python で Sort() を実行するさまざまな方法
Pythonでは、 sort()> は、リスト内の要素を昇順でソートするために使用される組み込みメソッドです。元のリストをその場で変更します。つまり、新しいリストを作成せずに、リスト内の要素を直接並べ替えます。の sort()> メソッドは値を返しません。単にリストを並べ替えて更新するだけです。
昇順でリストを並べ替えるを使用した Python の Sort()
Python の `sort()` メソッドは、要素のリストを昇順に並べ替えるのに使用されます。元のリストをその場で変更し、その要素を数値または辞書編集順に昇順に再配置します。このメソッドは、数値、文字列、またはその両方の組み合わせを含むリストに適用できます。デフォルトでは、パラメータを指定しない場合、Python の sort() はリストを昇順に並べ替えます。
例 : この例では、以下のコードはさまざまな種類のリストに対する並べ替え操作を示しています。まず、`sort()` メソッドを使用して、整数 (`numbers`) のリストを昇順に並べ替えます。次に、浮動小数点数のリスト (「10 進数」) を昇順にソートします。
Python3
# List of Integers> numbers> => [> 1> ,> 3> ,> 4> ,> 2> ]> # Sorting list of Integers> numbers.sort()> print> (numbers)> # List of Floating point numbers> decimalnumber> => [> 2.01> ,> 2.00> ,> 3.67> ,> 3.28> ,> 1.68> ]> # Sorting list of Floating point numbers> decimalnumber.sort()> print> (decimalnumber)> # List of strings> words> => [> 'Geeks'> ,> 'For'> ,> 'Geeks'> ]> # Sorting list of strings> words.sort()> print> (words)> |
出力:
[1, 2, 3, 4] [1.68, 2.0, 2.01, 3.28, 3.67] ['For', 'Geeks', 'Geeks']
降順でリストを並べ替えるを使用した Python の Sort()
リストを降順に並べ替えるには、Python の sort() 関数の reverse パラメーターを True に設定します。
my_list.sort(reverse=True)
例:私 n このコード例では、異なる型 (整数、浮動小数点数、文字列) の 3 つのリストを定義し、`reverse=True` パラメーターを指定した `sort` メソッドを使用してそれらを降順に並べ替えて、並べ替えられたリストを出力します。
Python3
# List of Integers> numbers> => [> 1> ,> 3> ,> 4> ,> 2> ]> # Sorting list of Integers> numbers.sort(reverse> => True> )> print> (numbers)> # List of Floating point numbers> decimalnumber> => [> 2.01> ,> 2.00> ,> 3.67> ,> 3.28> ,> 1.68> ]> # Sorting list of Floating point numbers> decimalnumber.sort(reverse> => True> )> print> (decimalnumber)> # List of strings> words> => [> 'Geeks'> ,> 'For'> ,> 'Geeks'> ]> # Sorting list of strings> words.sort(reverse> => True> )> print> (words)> |
出力:
[4, 3, 2, 1] [3.67, 3.28, 2.01, 2.0, 1.68] ['Geeks', 'Geeks', 'For']
キーを使用したカスタム機能による並べ替え
このメソッドでは、key パラメータを使用したカスタム関数による並べ替え操作を記述します。これにより、デフォルトの順序ではなく、カスタム関数によって定義された特定の基準に基づいて並べ替えることができます。カスタム関数が各要素に適用され、それに応じてリストが並べ替えられます。
例 : このサンプルコードでは、タプルの 2 番目の要素を返す関数 `sortSecond` を定義しています。次に、タプルのリスト `list1` を作成し、`sortSecond` 関数を使用して 2 番目の要素に基づいて昇順に並べ替えます。
Python3
def> sortSecond(val):> > return> val[> 1> ]> # list1 to demonstrate the use of sorting> # using second key> list1> => [(> 1> ,> 2> ),(> 3> ,> 3> ),(> 1> ,> 1> )]> # sorts the array in ascending according to> # second element> list1.sort(key> => sortSecond)> print> (list1)> # sorts the array in descending according to> # second element> list1.sort(key> => sortSecond,reverse> => True> )> print> (list1)> |
出力:
[(1, 1), (1, 2), (3, 3)] [(3, 3), (1, 2), (1, 1)]
Python の Sort() で文字列のリストを長さで並べ替える
このメソッドでは、`key=len` を指定した `sort()` 関数を使用して、文字列のリストを長さの昇順に並べ替えます。これは、結果として得られるソートされたリスト内で文字列が最短の長さから最長の長さの順に配置されることを意味します。
例 : この例では、以下のコードは文字列のリストを定義します。 words> を使用して各文字列の長さに基づいて並べ替えます。 len()> ソートキーとして機能します。最後に、ソートされたリストを出力します。
Python3
# Original list of strings> words> => [> 'apple'> ,> 'banana'> ,> 'kiwi'> ,> 'orange'> ,> 'grape'> ]> # Sorting by length using the len() function as the key> words.sort(key> => len> )> # Displaying the sorted list> print> (> 'Sorted by Length:'> , words)> |
出力:
Sorted by Length: ['kiwi', 'apple', 'grape', 'banana', 'orange']
特定の要素によるタプルのリストの並べ替え
特定の要素でタプルのリストを並べ替えるには、`key` パラメーターを指定して `sort()` 関数を使用します。目的の要素のインデックスをターゲットとするラムダ関数をキーとして指定します。タプルは、その特定の要素の値に基づいて並べ替えられます。
例 : このメソッド コードでは、「people」という名前のタプルのリストを定義します。各タプルは人の名前と年齢を表します。次に、次のメソッドを使用して、各タプルの 2 番目の要素 (年齢) に基づいてリストを並べ替えます。 sort> メソッドとソートキーとしてのラムダ関数。
Python3
# Original list of tuples> people> => [(> 'Alice'> ,> 25> ), (> 'Bob'> ,> 30> ), (> 'Charlie'> ,> 22> ), (> 'David'> ,> 28> )]> # Sorting by the second element of each tuple (age)> people.sort(key> => lambda> x: x[> 1> ])> # Displaying the sorted list> print> (> 'Sorted by Age:'> , people)> |
出力:
Sorted by Age: [('Charlie', 22), ('Alice', 25), ('David', 28), ('Bob', 30)] 辞書のリストを特定のキーで並べ替える
この方法では、Python の辞書のリストに対して `sort()` 関数を使用します。キー パラメーターとしてラムダ関数を指定すると、各ディクショナリ内の特定のキーに基づいてリストを並べ替えることができます。これにより、選択したキーに関連付けられた値に従って、辞書のリストを昇順に並べることができます。
例 : この例のコードでは、という名前の辞書のリストを定義します。 students> , ここで、各辞書は名前と年齢のキーを使用して学生を表します。次に、各辞書の年齢キーに基づいて辞書のリストを並べ替えます。 sort> メソッドとラムダ関数をキーとして使用します。
Python3
# Original list of dictionaries> students> => [> > {> 'name'> :> 'Alice'> ,> 'age'> :> 25> },> > {> 'name'> :> 'Bob'> ,> 'age'> :> 30> },> > {> 'name'> :> 'Charlie'> ,> 'age'> :> 22> },> > {> 'name'> :> 'David'> ,> 'age'> :> 28> },> ]> # Sorting by the 'age' key in each dictionary> students.sort(key> => lambda> x: x[> 'age'> ])> # Displaying the sorted list> print> (> 'Sorted by Age:'> , students)> |
出力:
Sorted by Age: [ {'name': 'Charlie', 'age': 22}, {'name': 'Alice', 'age': 25}, {'name': 'David', 'age': 28}, {'name': 'Bob', 'age': 30} ] Pythonのsorted()とsort()関数の違い
の違いを見てみましょう ソート済み() Python の sort() 関数:
| Pythonソート() | Python のソート() |
|---|---|
| sorted() 関数は、特定の反復可能オブジェクトのソートされたリストを返します。 | sort() メソッドはリストをソートします。 |
| sorted() 関数を使用するときに昇順または降順を指定できます。 | デフォルトではリストを昇順に並べ替えます。 |
| 構文 : ソート済み(反復可能、キー=キー、リバース=リバース) | 構文 : list.sort(reverse=True|False、key=myFunc) |
| 戻り値の型はソートされたリストです。 | リストを降順に並べ替えるのにも使用できます。 |
| 要素間の比較が定義されていない場合でも、任意の反復可能オブジェクトで使用できます。 | 要素を使用して比較できる必要があります。 |
| 等しい要素の相対的な順序を維持し、安定させます。 | 安定していない可能性があります。等しい要素の順序は変更される場合があります。 |
| ほとんどの場合、時間の計算量は O(n log n) です。 | ほとんどの場合、時間の計算量は O(n log n) です。 |
| 1 種類の値のみを含むリストのみを並べ替えることができます。 | リストをその場で並べ替えます。 |
| をサポートします。 | もサポートしています |
| 新しい並べ替えられたリストには追加のメモリが必要です。 | 並べ替えをその場で実行し、メモリを節約します。 |
詳細については、を参照してください Pythonのsorted()関数とsort()関数の違い 。