logo

Python で値のセットを並べ替えるにはどうすればよいですか?

並べ替えとは、一連の値を昇順または降順に並べ替えることを意味します。 Python で値を並べ替えるにはさまざまな方法があります。保存するデータに応じて、リスト、タプル、辞書などのさまざまなデータ構造を使用して、値のセットまたはグループを保存できます。そこで、この記事では、Python でデータを並べ替える方法と基準について説明します。

Sorted() メソッド

これは、あらゆる種類のオブジェクトを並べ替える Python の事前定義されたメソッドです。



構文:

sorted(iterable, key, reverse)>

このメソッドでは、3 つのパラメータを渡します。そのうち 2 つ(キーとリバース)はオプションで、最初のパラメータ、つまり iterable は任意の反復可能なオブジェクトにすることができます。このメソッドはソートされたリストを返しますが、元のデータ構造は変更しません。

例 1:



Python3






# List> list_of_items>=> [>'g'>,>'e'>,>'e'>,>'k'>,>'s'>]> print>(>sorted>(list_of_items))> # Tuple> tuple_of_items>=> (>'g'>,>'e'>,>'e'>,>'k'>,>'s'>)> print>(>sorted>(tuple_of_items))> # String-sorted based on ASCII> # translations> string>=> 'geeks'> print>(>sorted>(string))> # Dictionary> dictionary>=> {>'g'>:>1>,>'e'>:>2>,>'k'>:>3>,>'s'>:>4>}> print>(>sorted>(dictionary))> # Set> set_of_values>=> {>'g'>,>'e'>,>'e'>,>'k'>,>'s'>}> print>(>sorted>(set_of_values))> # Frozen Set> frozen_set>=> frozenset>((>'g'>,>'e'>,>'e'>,>'k'>,>'s'>))> print>(>sorted>(frozen_set))>

>

>


出力

['e', 'e', 'g', 'k', 's'] ['e', 'e', 'g', 'k', 's'] ['e', 'e', 'g', 'k', 's'] ['e', 'g', 'k', 's'] ['e', 'g', 'k', 's'] ['e', 'g', 'k', 's']>

例 2:

事前定義された関数をキーパラメータとして使用します。したがって、2番目のパラメータ、つまり 指定されたデータ構造を、次のような事前定義された関数によってソートするために使用されます。 のみ() またはユーザー定義関数。キーパラメータに渡された関数に基づいて、データ構造内の値を並べ替えます。

Python3




# using key parameter with pre-defined> # function i.e. len()> list_of_items>=> [>'apple'>,>'ball'>,>'cat'>,>'dog'>]> print>(>'Sorting without key parameter:'>,>sorted>(list_of_items))> print>(>'Sorting with len as key parameter:'>,>sorted>(list_of_items, key>=>len>))>

>

>

出力

Sorting without key parameter: ['apple', 'ball', 'cat', 'dog'] Sorting with len as key parameter: ['cat', 'dog', 'ball', 'apple']>

例 3:

キーパラメータにユーザー定義関数を使用します。

Python3




# using key parameter with user-defined> # function i.e. by_name> # using key parameter with user-defined> # function i.e. by_marks> # here is a list_of_tuples where the first> # item in tuple is the student name and the> # second item is his/her marks> list_of_items>=> [(>'Ramesh'>,>56>),(>'Reka'>,>54>),(>'Lasya'>,>32>),(>'Amar'>,>89>)]> # defining a user-defined function which returns> # the first item(name)> def> by_name(ele):> >return> ele[>0>]> # defining a user-defined function which returns> # the second item(marks)> def> by_marks(ele):> >return> ele[>1>]> print>(>'Sorting without key parameter:'>,>sorted>(list_of_items))> print>(>'Sorting with by_name as key parameter:'>,> >sorted>(list_of_items, key>=>by_name))> print>(>'Sorting with by_marks as key parameter:'>,> >sorted>(list_of_items, key>=>by_marks))>

>

>

出力

キーパラメータを使用しない並べ替え: [('Amar', 89), ('Lasya', 32), ('Ramesh', 56), ('Reka', 54)]

by_name をキーパラメータとして並べ替え: [('Amar', 89), ('Lasya', 32), ('Ramesh', 56), ('Reka', 54)]

by_marks をキーパラメータとして並べ替え: [('Lasya', 32), ('Reka', 54), ('Ramesh', 56), ('Amar', 89)]

例 4:

それで、 3番目のパラメータは逆です これは、反復可能オブジェクトを降順または降順にソートするために使用されます。

Python3




# using key parameter reverse> list_of_items>=> [>'geeks'>,>'for'>,>'geeks'>]> print>(>'Sorting without key parameter:'>,> >sorted>(list_of_items))> print>(>'Sorting with len as key parameter:'>,> >sorted>(list_of_items, reverse>=>True>))>

>

>

出力

Sorting without key parameter: ['for', 'geeks', 'geeks'] Sorting with len as key parameter: ['geeks', 'geeks', 'for']>

例 5:

3 つのパラメータをすべて使用する

Python3




# using by_name and by_marks as key parameter> # and making reverse parameter true> # here is a list_of_tuples where the first> # item in tuple is the student name and the> # second item is his/her marks> list_of_items>=> [(>'Ramesh'>,>56>), (>'Reka'>,>54>),> >(>'Lasya'>,>32>), (>'Amar'>,>89>)]> # defining a user-defined function which> # returns the first item(name)> def> by_name(ele):> >return> ele[>0>]> # defining a user-defined function which> # returns the second item(marks)> def> by_marks(ele):> >return> ele[>1>]> print>(>'Sorting without key and reverse:'>,>sorted>(list_of_items))> print>(>'Sorting with by_name as key parameter and reverse parameter as False:'>,> >sorted>(list_of_items, key>=>by_name, reverse>=>False>))> print>(>'Sorting with by_name as key parameter and reverse parameter as True:'>,> >sorted>(list_of_items, key>=>by_name, reverse>=>True>))> print>(>'Sorting with by_marks as key parameter and reverse parameter as False:'>,> >sorted>(list_of_items, key>=>by_marks, reverse>=>False>))> print>(>'Sorting with by_marks as key parameter and reverse parameter as True:'>,> >sorted>(list_of_items, key>=>by_marks, reverse>=>True>))>

>

>

出力

キーと逆を使用しない並べ替え: [('Amar', 89), ('Lasya', 32), ('Ramesh', 56), ('Reka', 54)]

by_name をキー パラメーター、reverse パラメーターを False として並べ替えます: [('Amar', 89), ('Lasya', 32), ('Ramesh', 56), ('Reka', 54)]

by_name をキー パラメーター、reverse パラメーターを True として並べ替え: [('Reka', 54), ('Ramesh', 56), ('Lasya', 32), ('Amar', 89)]

by_marks をキー パラメーター、逆引きパラメーターを False として並べ替え: [('Lasya', 32), ('Reka', 54), ('Ramesh', 56), ('Amar', 89)]

by_marks をキー パラメーター、reverse パラメーターを True として並べ替え: [('Amar', 89), ('Ramesh', 56), ('Reka', 54), ('Lasya', 32)]

Sort() メソッド

このメソッドはデフォルトでリストを昇順に並べ替えますが、reverse パラメーターを使用して降順に並べ替えることができます。このメソッドは元のリストを変更しますが、何も返しません。

string.javaを含む

例 1:

Python3




# creating a list of items> list_of_items>=> [>'geeks'>,>'for'>,>'geeks'>]> print>(>'Original list:'>, list_of_items)> # using the sort method to sort> # the items> list_of_items.sort()> # displaying the list> print>(>'Sorted list:'>, list_of_items)>

>

>

出力

Original list: ['geeks', 'for', 'geeks'] Sorted list: ['for', 'geeks', 'geeks']>

例 2:

事前定義された関数をキーパラメータとして使用する

Python3




# using key parameter with pre-defined> # function i.e. len()> list_of_items>=> [>'apple'>,>'ball'>,>'cat'>,>'dog'>]> print>(>'Original List:'>, list_of_items)> # using the len() as key parameter and> # sorting the list> list_of_items.sort(key>=>len>)> print>(>'Sorting with len as key parameter:'>, list_of_items)>

>

>

出力

Original List: ['apple', 'ball', 'cat', 'dog'] Sorting with len as key parameter: ['cat', 'dog', 'ball', 'apple']>

例 3:

ユーザー定義関数をキーパラメータとして使用する

Python3




# using key parameter with user-defined> # function i.e. by_name> # using key parameter with user-defined> # function i.e. by_marks> # defining a user-defined function which> # returns the first item(name)> def> by_name(ele):> >return> ele[>0>]> # defining a user-defined function which> # returns the second item(marks)> def> by_marks(ele):> >return> ele[>1>]> # here is a list_of_tuples where the first> # item in tuple is the student name and the> # second item is his/her marks> list_of_items>=> [(>'Ramesh'>,>56>), (>'Reka'>,>54>),> >(>'Lasya'>,>32>), (>'Amar'>,>89>)]> print>(>'original list:'>, list_of_items)> # sorting by key value as by_name function> list_of_items.sort(key>=>by_name)> print>(>'Sorting with by_name as key parameter:'>, list_of_items)> # here is a list_of_tuples where the first> # item in tuple is the student name and the> # second item is his/her marks> list_of_items>=> [(>'Ramesh'>,>56>), (>'Reka'>,>54>),> >(>'Lasya'>,>32>), (>'Amar'>,>89>)]> print>(>'original list:'>, list_of_items)> # sorting by key value as by_marks function> list_of_items.sort(key>=>by_marks)> print>(>'Sorting with by_marks as key parameter:'>, list_of_items)>

>

>

出力

元のリスト: [('Ramesh', 56), ('Reka', 54), ('Lasya', 32), ('Amar', 89)]

by_name をキーパラメータとして並べ替え: [('Amar', 89), ('Lasya', 32), ('Ramesh', 56), ('Reka', 54)]

元のリスト: [('Ramesh', 56), ('Reka', 54), ('Lasya', 32), ('Amar', 89)]

by_marks をキーパラメータとして並べ替え: [('Lasya', 32), ('Reka', 54), ('Ramesh', 56), ('Amar', 89)]

例 4:

逆引きパラメータの使用

Python3




# using key parameter reverse> list_of_items>=> [>'geeks'>,>'for'>,>'geeks'>]> print>(>'original list:'>, list_of_items)> list_of_items.sort(reverse>=>True>)> print>(>'sorting with reverse parameter'>, list_of_items)>

>

>

出力

original list: ['geeks', 'for', 'geeks'] sorting with reverse parameter ['geeks', 'geeks', 'for']>