Python:.sort()メソッドを使用してリストをソートします

投稿を公開する理由は、Pythonでリスト(配列)を詳細に調べたときに、ネットワーク上のキーを使用して要素を並べ替える方法の簡単な説明list.sort(key = ...)が見つからなかったためです。

たぶん、私はとても不運で、長い間誰にとっても簡単なことを理解していましたが、以下の情報は私と同じ初心者のパイオニストにとって非常に役立つと思います。

だから私たちが持っているもの。 ソートしたいリストがあるとします-そしてそれは特定のシーケンスの異なる長さの3行で構成されています:

sortList = ['a', '', 'bbb']

配列要素は、デフォルトでは辞書式に.sort()メソッドによってソートされます。つまり、アルファベット順に、小さい値から大きい値へとソートされます。 したがって、次の場合:

sortList.sort()

次に出力を取得します。

>>> ['a', 'bbb', 'cc']

ただし、.sort()メソッドを使用すると、原則とソート順の両方を変更できます。

ソートの原則を変更するには、Python 2.4以降で使用可能なkeyキーワードを使用します。

リストを2つの方法でソートしたいとします。1。アルファベット順。 2.線の長さに沿って。 ただし、最初の方法は既にデフォルトのソートとして機能していますが、keyパラメーターを使用して同じ結果を得ることができます。

sortList = ['a', 'cc', 'bbb']

# "" , :
def sortByAlphabet (inputStr):
return inputStr[0] # ,

# , :
def sortByLength (inputStr):
return len(inputStr) # ,

print u' : ', sortList # >>> ['a', 'cc', 'bbb']

sortList.sort( key=sortByAlphabet ) #
print u' : ', sortList # >>> ['a', 'bbb', 'cc']

sortList.sort( key=sortByLength ) #
print u' : ', sortList # >>> ['a', 'cc', 'bbb']

# , :
sortList.sort( key=sortByLength , reverse=True ) #
print u' , : ', sortList # >>> ['bbb', 'cc', 'a']


.sort()メソッドは、ソースリストに対してアクションを実行し、その中の要素を再配置し、ソースリストのソートされたコピーを返さないことに注意してください。 ソートされたコピーを取得するには、sortedメソッドを使用する必要があります。

newList = sorted(sortList)

-同じオプションですが、キーパラメータを使用します(上記のオプションと同様)。

newList = sorted(sortList, key=sortByLength)

.sorted()メソッドには他のパラメーターもありますが、自己分析を混乱させることはないようです。

Source: https://habr.com/ru/post/J138535/


All Articles