Python リストの組み込みの sort() メソッドは並べ替えに使用されます。また、Python の組み込みのグローバルsorted() メソッドを使用して、反復可能なシーケンスを並べ替え、新しいシーケンスを生成することもできます。
#1) 並べ替えの基本
単純な昇順並べ替えは非常に簡単です。単にsorted()メソッドを呼び出すだけです。これは、要素が小なり演算子 (__lt__) に基づいて並べ替えられた新しいリストを返します。 コードは次のとおりです。>>> sorted([5, 2, 3, 1, 4]) [1, 2, 3, 4, 5]
>>> a = [5, 2, 3, 1, 4] >>> a.sort() >>> a [1, 2, 3, 4, 5]
>>> sorted({1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'}) [1, 2, 3, 4, 5]
2) キーパラメータ/関数
python2.4以降、list.sort()およびsorted () 関数 key パラメータは、各要素が比較される前に呼び出される関数を指定するために追加されます。たとえば、key で指定された関数では文字列の大文字と小文字を無視します: コードは次のとおりです:>>> sorted("This is a test string from Andrew".split(), key=str.lower) ['a', 'Andrew', 'from', 'is', 'string', 'test', 'This']
>>> student_tuples = [ ('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10), ] >>> sorted(student_tuples, key=lambda student: student[2]) # sort by age [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
>>> class Student: def __init__(self, name, grade, age): self.name = name self.grade = grade self.age = age def __repr__(self): return repr((self.name, self.grade, self.age)) >>> student_objects = [ Student('john', 'A', 15), Student('jane', 'B', 12), Student('dave', 'B', 10), ] >>> sorted(student_objects, key=lambda student: student.age) # sort by age [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
3) オペレーター モジュール関数
上記のキー パラメーターは非常に便利で広範囲にわたるため、Python ではメソッドへのアクセスをより簡単かつ迅速にするための便利な関数がいくつか提供されています。 Operatorモジュールにはitemgetter、attrgetterがあり、2.6からはmethodcallerメソッドが追加されました。これらのメソッドを使用すると、上記の操作がより簡潔かつ高速になります。 コードをコピーします。コードは次のとおりです。>>> from operator import itemgetter, attrgetter >>> sorted(student_tuples, key=itemgetter(2)) [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)] >>> sorted(student_objects, key=attrgetter('age')) [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
>>> sorted(student_tuples, key=itemgetter(1,2)) [('john', 'A', 15), ('dave', 'B', 10), ('jane', 'B', 12)] >>> sorted(student_objects, key=attrgetter('grade', 'age')) [('john', 'A', 15), ('dave', 'B', 10), ('jane', 'B', 12)]
4) 昇順と降順
list .sort() とsorted() は両方とも、昇順または降順の並べ替えを示すパラメーター reverse (True または False) を受け入れます。たとえば、上記の生徒を次のように降順に並べ替えます。 コードをコピーします。 コードは次のとおりです。>>> sorted(student_tuples, key=itemgetter(2), reverse=True) [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)] >>> sorted(student_objects, key=attrgetter('age'), reverse=True) [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
以上がPythonで降順に使用される単語はどれですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。