python 3 sort sorted関数の応用について詳しく説明します。


python 3 sortedはcmpへのサポートをキャンセルしました。
python 3ヘルプドキュメント:

sorted(iterable,key=None,reverse=False)
keyは関数を受け入れます。この関数は一つの要素しか受け入れられません。デフォルトはNoneです。
reverseはブール値です。Trueに設定すると、リスト要素は逆順に配置され、デフォルトはFalseです。
キーの役割原理を重点的に紹介します。
keyは、各要素から比較用のキーワードを抽出するためのパラメータを受信する関数を指定します。デフォルト値はNoneです。
例1:

students = [('john', 'A', 15), ('jane', 'B', 12), ('dave','B', 10)]

sorted(students,key=lambda s: x[2]) #       
結果:[('dave','B',10),('jane','B',12),('john','A',15)]
例2:これは文字列の並べ替えで、並べ替え規則:小文字<大文字<奇数<偶数>

s = 'asdf234GDSdsf23' #  :  -  -  -  

print("".join(sorted(s, key=lambda x: (x.isdigit(),x.isdigit() and int(x) % 2 == 0,x.isupper(),x))))
原理:まず、元のグループの最初の値を比較し、FALSE<TRUEは、等しいと元のグループの次の値を比較し、これを類推する。
まずBoolean valueの並べ替えを見てください。
print(sorted)==>結果[False,True]
Booleanの並べ替えはFalseを前にして、Trueは後ろに並べます。
1.x.isdigit()の役割は数字を前に置いて、アルファベットを後ろに置くことです。
2.x.isdigit()and int(x)%2==0の役割は奇数が前で偶数が後ろにあることを保証することです。
3.x.isuper()の役割は前の基礎の上で、小文字は前の大文字の後で書くことを保証します。
4.最後のxは前に基づいて、すべてのカテゴリの数字またはアルファベットを並べ替えることを表します。
最後の結果:addffssDGS 33224
例3:面接の問題になると:

list1=[7, -8, 5, 4, 0, -2, -5]

#  1.         2.       3.      

sorted(list1,key=lambda x:(x<0,abs(x)))
問題解決の考え方:まず正負の順に並べて、それから大きさによって順番に並べます。
以上のpython 3 sort sorted関数に対する応用の詳細は小編が皆さんに提供した内容の全部です。参考にしてもらいたいです。どうぞよろしくお願いします。