ホームページ  >  記事  >  バックエンド開発  >  Pythonの辞書はソートできますか?

Pythonの辞書はソートできますか?

anonymity
anonymityオリジナル
2019-06-14 11:25:038399ブラウズ

Python では、辞書は組み込みのデータ型であり、順序付けされていない記憶構造であり、各要素はキーと値のペアです。

Pythonの辞書はソートできますか?

例: dict = {'username': 'xiaoming', 'password': '123456'}、「username」と「password」はキーです。 ' Xiaoming' と '123456' は値です。d[key] を通じて対応する値 value への参照を取得できますが、value を通じてキーを取得することはできません。

辞書については、次の点を知っておく必要があります:

a. 辞書のキーは大文字と小文字が区別されます;

b. 辞書重複キーは使用できません;

c. 辞書には順序付けがなく、要素の順序の概念がありません。順序のペアを単純に並べただけです。

辞書はキー/値でソートされます:

辞書自体には順序の概念はありませんが、常にある時点でソートされます。多くの場合、辞書の並べ替えが必要になります。

方法 1: キー値で並べ替えます。

def sortedDictValues1(adict):
    items = adict.items()
    print "items:",items 
    items.sort()
    return [value for key, value in items]
adict = {"a1":11,"b1":2,"c1":30,"e1":20,"d1":4}
print sortedDictValues1(adict)
items: [('a1', 11), ('c1', 30), ('e1', 20), ('b1', 2), ('d1', 4)]
[11, 2, 30, 4, 20]

ディクショナリの items メソッドはタプルのリストを返します。各タプルには項目のペア (キーと対応する値) が含まれます。タプルのリストは、sort() メソッドを使用して並べ替えることができます。

方法 2: キー値で並べ替える

def sortedDictValues2(adict): 
    keys = adict.keys() 
    keys.sort() 
    return [dict[key] for key in keys]

辞書オブジェクトのkeys()メソッドは、辞書内のすべてのキー値のリストを返します。順番はランダムです。並べ替える必要がある場合は、返されたキー値リストに対して sort() メソッドを使用するだけです。これはメソッド 1 よりも高速です。

方法 3: キー値で並べ替える

def sortedDictValues3(adict): 
    keys = adict.keys() 
    keys.sort() 
    return map(adict.get, keys)

マッピング メソッドを使用して、最後のステップをより効率的に実行します

方法 4: 1 つline ステートメント

[(k,di[k]) for k in sorted(di.keys())]

方法 5: 値による並べ替え

def sort_by_value(d): 
    items=d.items() 
    backitems=[[v[1],v[0]] for v in items] 
    backitems.sort() 
    return [ backitems[i][1] for i in range(0,len(backitems))]

最初に項目のキーと値の位置をリストに変換し、次にそれぞれに従ってlist 要素の最初の値、つまり元の値を並べ替えます。

方法 6: 値で並べ替えます

[ v for v in sorted(di.values())]

方法 7:ソートされた関数キー=パラメータのソート:

キーでソート

print sorted(dict1.items(), key=lambda d: d[0])

値でソート

print sorted(dict1.items(), key=lambda d: d[1])
python内置sorted函数的帮助文档:
sorted(…)
sorted(iterable, cmp=None, key=None, reverse=False) –> new sorted list

辞書をソートする方法、実際、彼らの中心的なアイデアは同じ、つまり辞書 内の要素がリストに分割され、そのリストがソートされることで、間接的に辞書がソートされます。この「要素」は、キー、値、または項目です。

メソッド 8: PYTHON の COLLECTION シリーズ - 順序付き辞書 (ORDEREDDICT)

orderdDict は、辞書型の補足であり、辞書要素が追加される順序を保持します

りー

以上がPythonの辞書はソートできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。