python辞書とリストの様々な入れ子の並べ替え


転載してからhttp://m.zgxue.com/167/1676555.html
一:辞書の並べ替え
解析:sortedメソッドを使って、並べ替えの結果は元のグループです。文字列の並べ替えができます。(その数字はもっと大丈夫です。)  
1: キーの値で並べ替えます。
a = {'a': 'China', 'c': 'USA', 'b': 'Russia', 'd': 'Canada'}
b = sorted(a.items(), key=lambda x: x[1], reverse=True)
結果:
[('c', 'USA'), ('b', 'Russia'), ('a', 'China'), ('d', 'Canada')]
2:キー名(key)で並べ替えます。
a = {'a': 'China', 'c': 'USA', 'b': 'Russia', 'd': 'Canada'}
b = sorted(a.items(), key=lambda x: x[0], reverse=True)
結果:
[('d', 'Canada'), ('c', 'USA'), ('b', 'Russia'), ('a', 'China')]
3:ネストした辞書は、辞書のキー名(key)で並べ替えられます。
a = {'a': {'b':  'China'}, 'c': {'d': 'USA'}, 'b': {'c': 'Russia'}, 'd': {'a': 'Canada'}}
b = sorted(a.items(), key=lambda x: x[1], reverse=True)
結果:
[('c', {'d': 'USA'}), ('b', {'c': 'Russia'}), ('a', {'b': 'China'}), ('d', {'a': 'Canada'})]
4:ネストリストで、リストの最初の要素に対して並べ替えます。
a = {'a': [1, 3], 'c': [3, 4], 'b': [0, 2], 'd': [2, 1]}
b = sorted(a.items(), key=lambda x: x[1][0], reverse=True)
結果:
[('c', [3, 4]), ('d', [2, 1]), ('a', [1, 3]), ('b', [0, 2])]
4-2:ネストリストを、リストの他の要素に従って並べ替えます。 リストの下付きを変更するだけです。
a = {'a': [1, 3], 'c': [3, 4], 'b': [0, 2], 'd': [2, 1]}
b = sorted(a.items(), key=lambda x: x[1][1], reverse=True)
結果:
[('c', [3, 4]), ('a', [1, 3]), ('b', [0, 2]), ('d', [2, 1])]
まとめ: ここではlambada法を使用して、x:x[1][1]は辞書にアクセスしている値と見なして、どの数値順に並べ替えたいのか、対応する座標で対応すれば良いですが、辞書が複雑すぎると元のグループで保存して、並べ替えのプロセスを簡略化するべきです。 
=========================リストの並べ替え====================================二:リストの並べ替え
1:アルファベット順に並べ替えます。
a = ['USA', 'China', 'Canada', 'Russia']
a.sort(reverse=True)
結果:
['USA', 'Russia', 'China', 'Canada']
2.ネストリストの並べ替えは、サブリストの他の値に従って雷系を並べ替え、x[0]ここの下付きを修正すればいいです。
a = [['USA', 'b'], ['China', 'c'], ['Canada', 'd'], ['Russia', 'a']]
a.sort(key=lambda x: x[0], reverse=True)
結果:
[['USA', 'b'], ['Russia', 'a'], ['China', 'c'], ['Canada', 'd']]
3:辞書を入れ子にして、辞書値(value)で並べ替えます。
a = [{'letter': 'b'}, {'letter': 'c'}, {'letter': 'd'}, {'letter': 'a'}]
a.sort(key=lambda x: x['letter'], reverse=True)
結果:
[{'letter': 'd'}, {'letter': 'c'}, {'letter': 'b'}, {'letter': 'a'}]
辞書の値も辞書の場合、キーの順に優先的に並べられます。キーの順に並べられます。例は以下の通りです。
a = [{'letter': {'a': 'b'}}, {'letter': {'a': 'c'}}, {'letter': {'a': 'd'}}, {'letter': {'a': 'a'}}]
a.sort(key=lambda x: x['letter'], reverse=True)
結果:
[{'letter': {'a': 'd'}}, {'letter': {'a': 'c'}}, {'letter': {'a': 'b'}}, {'letter': {'a': 'a'}}]
a = [{'letter': {'a': 'b'}}, {'letter': {'b': 'c'}}, {'letter': {'c': 'd'}}, {'letter': {'d': 'a'}}]
a.sort(key=lambda x: x['letter'], reverse=True)
結果:
[{'letter': {'d': 'a'}}, {'letter': {'c': 'd'}}, {'letter': {'b': 'c'}}, {'letter': {'a': 'b'}}]
まとめ: 
一般的なクエリは、lamber daだけで実施することができます。他にも、たとえば、operatorパッケージを使用する方法があります。 ここでは様々な方法の効率を比較していません。pythonは2.7.8バージョンです。
全体的には、上記の例は非常に詳細であり、基本的に通常の状況をカバーしています。 
本文はray_から転載しますupブログ、著作権はray_になります。すべてをupします