ホームページ >バックエンド開発 >Python チュートリアル >Pythonで降順に使用される単語はどれですか?
Python リストの組み込みの sort() メソッドは並べ替えに使用されます。また、Python の組み込みのグローバルsorted() メソッドを使用して、反復可能なシーケンスを並べ替え、新しいシーケンスを生成することもできます。
#1) 並べ替えの基本
単純な昇順並べ替えは非常に簡単です。単にsorted()メソッドを呼び出すだけです。これは、要素が小なり演算子 (__lt__) に基づいて並べ替えられた新しいリストを返します。 コードは次のとおりです。>>> sorted([5, 2, 3, 1, 4]) [1, 2, 3, 4, 5]list.sort() メソッドを使用して並べ替えることもできます。この場合、リスト自体が変更されます。このメソッドは通常、sorted() よりも便利ではありませんが、元のリストを保持する必要がない場合は、このメソッドの方が効率的です。 コードは次のとおりです:
>>> a = [5, 2, 3, 1, 4] >>> a.sort() >>> a [1, 2, 3, 4, 5]もう 1 つの違いは、list.sort() メソッドが list 内でのみ定義されているのに対し、sorted() メソッドはすべての反復可能オブジェクトに対して有効であることです。シーケンス。 コードは次のとおりです:
>>> 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']key パラメータの値は関数です。この関数には 1 つのみがあります。パラメータを取得し、処理用の値を返します。この手法は、key で指定された関数が要素ごとに正確に呼び出されるため、高速です。 より一般的な使用例は、複雑なオブジェクトの特定の値を使用して、複雑なオブジェクトのシーケンスを並べ替えることです。たとえば: コードは次のとおりです:
>>> 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 サイトの他の関連記事を参照してください。