Pythonでの辞書やリストのソート方法の例

WBOY
リリース: 2016-06-16 08:43:46
オリジナル
1138 人が閲覧しました

1. リストを並べ替えます

推奨される並べ替え方法は、組み込みの sort() メソッドを使用することです。これは最も高速で安定した並べ替えです

コードをコピーします コードは次のとおりです次のように:

>>> a = [1,9,3,7,2,0,5]
>>> 🎜>>> print a
[0, 1, 2, 3, 5, 7, 9]
>>> >> a
[9, 7, 5, 3, 2, 1, 0]
>>> b = ['e','a','be','ad ','dab', 'dbc']
>>> b.sort()
>>> print b
['a', 'ad', 'be' , 'dab', ' dbc', 'e']

リストのソートは DSU (decorate-sort-undecorate) モードに従い、シーケンスはエントリがインストールされた順序で比較されます。先ほどの例の文字列の場合、左から右へ順番に文字を1つずつ比較し、結果が得られたら比較を終了します。
2. 辞書 (dict) を並べ替えます

実際、辞書 (dict) は順序付けされていないシーケンスであり、並べ替えについて話す必要はありません。辞書のキー/値に従って並べ替えて、対応する値/キーを配置することしかできません。同じ順序で

辞書の任意の並べ替え 問題は最終的には、辞書内のキーまたは値で構成されるリストを並べ替えることになります



1. 辞書内のキーによる並べ替え [1]


コードをコピー コードは次のとおりです。defsortedDictValues(adict,reverse=False) :
keys = adict.keys()
keys.sort(reverse=reverse)
return [keys のキーの adict[key]]

キーと値を返す必要がある場合同時に、最後の return ステートメントを次のように変更することが目的です:

コードをコピーします コードは次のとおりです: return [(key,adict[key]] ) for key inkeys]
組み込みのsorted()メソッドを使用して並べ替える簡単な書き方もあります。

コードをコピー コードは次のとおりです:>>> d = {'c':1,'e' :'5','b':7}
>>>>sorted(d.items())
[('b', 7), ('c', 1), (' e', '5')]

ただし、パフォーマンスは少し低下します。パフォーマンスが重要な場合は、ネイティブの list.sort() メソッドを使用することをお勧めします。

2 . 辞書 (dict) の値で並べ替えます [2]


コードをコピー コードは次のとおりです:defsorted_dict(container,keys,reverse):
"""コンテナ内の対応する値に従ってソートされたキーリストを返す """
aux = [ (container[k], k) for k in キー]
aux.sort()
逆の場合: aux.reverse()
return [k for v, k in aux]

sorted() メソッドも使用できます同じ機能を実現するには:

コードをコピー コードは次のとおりです: sorted(d.items(), key=lambda d) :d[1]、reverse=True)
3. 結論

上記のコードの分析を通じて、次の原則を大まかに要約できます:

* 辞書の並べ替えは、最終的には辞書のキーまたは値で構成されるリストの並べ替えに帰着します。

* リストの並べ替え、与え組み込みの list.sort() メソッドの使用を優先します

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート