[902] pythonリストソート

ソートされた関数###

デフォルトで小さいものから大きいものにソートするpythonのsorted関数を使用します

sort(list)は、式として使用できるオブジェクトを返します。元のリストは変更されず、新しいソート済みリストオブジェクトが生成されます。

普通のリスト####

>>> a =[5,2,9,8,6]>>> a =sorted(a)>>>print(a)[2,5,6,8,9]

逆ソートは大きいものから小さいものへのソートです。reverse= Trueを使用してください

>>> a =[5,2,9,8,6]>>> a =sorted(a,reverse=True)>>>print(a)[9,8,6,5,2]

タプルリスト####

リスト要素がタプル要素の場合、パラメータキーワードキーを使用する必要があります。ラムダは暗黙の関数です。これは固定の記述方法です。xはリスト内の要素を表します。ここでは、タプルを意味します。xは任意の名前です。x[ 0]はタプルの最初の要素を意味し、2番目の要素はx [1]です。

最初のキーワードで並べ替え

>>> a =[('x',0.56),('a',1.28),('c',2.36),('s',5.02),('h',20)]>>> a =sorted(a,key = lambda x:x[0])>>>print(a)[('a',1.28),('c',2.36),('h',20),('s',5.02),('x',0.56)]

2番目のキーワードで並べ替え

>>> a =[('x',0.56),('a',1.28),('c',2.36),('s',5.02),('h',20)]>>> a =sorted(a,key = lambda x:x[1])>>>print(a)[('x',0.56),('a',1.28),('c',2.36),('s',5.02),('h',20)]

逆ソートは大きいものから小さいものへのソートです。reverse= Trueを使用してください

>>> a =[('x',0.56),('a',1.28),('c',2.36),('s',5.02),('h',20)]>>> a =sorted(a,key = lambda x:x[1],reverse=True)>>>print(a)[('h',20),('s',5.02),('c',2.36),('a',1.28),('x',0.56)]

リスト内の要素の順序を逆にします###

逆関数を使用して、リスト内の要素の順序を逆にします

>>> a =[('x',0.56),('a',1.28),('c',2.36),('s',5.02),('h',20)]>>> a.reverse()>>>print(a)[('h',20),('s',5.02),('c',2.36),('a',1.28),('x',0.56)]

list.sort()

list.sort()はオブジェクトを返さず、元のリストを変更します。

list.sort(func=None, key=None, reverse=False)

フォワードソート

>>> L =[2,3,1,4]>>>L.sort()>>>L
>>>[1,2,3,4]>>> L =[2,3,1,4]>>> a=L.sort()>>> a #aがなしの場合
>>> L
[1,2,3,4]

逆ソート

>>> L =[2,3,1,4]>>>L.sort(reverse=True)>>>L
>>>[4,3,2,1]

2番目のキーワードを並べ替える

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 方法1------------------------------------>>>L =[('b',6),('a',1),('c',3),('d',4)]>>>L.sort(lambda x,y:cmp(x[1],y[1]))>>>L
>>>[(' a',1),('c',3),('d',4),('b',6)]-----------------------------------------方法2------------------------------------>>>L =[('b',6),('a',1),('c',3),('d',4)]>>>L.sort(key=lambda x:x[1])>>>L
>>>[(' a',1),('c',3),('d',4),('b',6)]-----------------------------------------方法3------------------------------------>>>L =[('b',2),('a',1),('c',3),('d',4)]>>>import operator
>>> L.sort(key=operator.itemgetter(1))>>>L
>>>[(' a',1),('b',2),('c',3),('d',4)]------------------------------------(DSU方式:Decorate-Sort-Undercorate)------------------------------------->>>L =[('b',2),('a',1),('c',3),('d',4)]>>>A =[(x[1],i,x)for i,x inenumerate(L)] #i can confirm the stable sort
>>> A.sort()>>>L =[s[2]for s in A]>>>L
>>>[(' a',1),('b',2),('c',3),('d',4)]

2番目のキーワードで並べ替えてから、最初のキーワードで並べ替える場合はどうなりますか?2つの方法があります。

>>> L =[('d',2),('a',4),('b',3),('c',2)]>>> L.sort(key=lambda x:(x[1],x[0]))>>> L
>>>[(' c',2),('d',2),('b',3),('a',4)]----------------------------------------------------------------------->>> L =[('d',2),('a',4),('b',3),('c',2)]>>> L.sort(key=operator.itemgetter(1,0))>>> L
>>>[(' c',2),('d',2),('b',3),('a',4)]

参照:https://www.cnblogs.com/qilin20/p/12301878.html
https://www.cnblogs.com/python960410445/p/11831393.html

Recommended Posts

[902] pythonリストソート
Python3リスト
パイソンリスト学習
pythonリスト(LIST)の深い理解
Pythonの基本的な構文リストの作成
Pythonはどのように更新値を一覧表示しますか
pythonのリスト内包表記とは何ですか
Pythonリスト理解操作例の概要
Pythonマルチスレッド
Python CookBook
Python FAQ
Python3辞書
Python3モジュール
Pythonの基本
Python記述子
Pythonの基本2
Python exec
Python3タプル
Pythonデコレータ
Python IO
Pythonマルチスレッド
Pythonツールチェーン
Pythonマルチタスク-日常
Pythonの概要
pythonの紹介
Pythonアナリティック
Pythonの基本
07.Python3関数
Pythonの基本3
Pythonマルチタスクスレッド
Python関数
python演算子
Pythonエントリ-3
pythonで辞書を並べ替える方法
Centos 7.5 python3.6
Python文字列
pythonキューキュー
Pythonの基本4
Pythonの基本5
Pythonはリスト内の要素をランダムにシャッフルします
Pythonマルチスレッドのリストを詳しく説明する