Pythonの組み込み辞書データタイプは順序付けられておらず、対応する値はキーを介して取得されることがわかっています。ただし、辞書内の項目を並べ替えて出力する必要がある場合があります。これは、キーまたは値に従って並べ替えることができます。辞書の内容を並べ替えて出力する方法はいくつありますか?ここにいくつかの素晴らしい解決策があります。
Pythonのコンテナには2種類のデータがあり、1つはコンテナ自体の並べ替え関数で、もう1つは組み込みの並べ替え関数です。
sort関数とsorted関数の唯一の違いは、sortがインプレースソートであり、sortedが新しいソート済みコンテナーを生成することです。
1 キー値で並べ替え
# 最も簡単な方法は、キー値で並べ替えることです。
def sortedDictValues1(adict):
items = adict.items()
items.sort()return[value for key, value in items]
# もう1つはキー値でソートされており、前のものよりも高速であるようです。
def sortedDictValues2(adict):
keys = adict.keys()
keys.sort()return[dict[key]for key in keys]
# または、より高速であると言われているキー値で並べ替えます。 。 。キーがタプルの場合でも適用されます
def sortedDictValues3(adict):
keys = adict.keys()
keys.sort()returnmap(adict.get, keys)
# 1行で完了します。
[( k,di[k])for k insorted(di.keys())]
# ソートされた関数のキーパラメーター(func)を使用してソートします。
# キーで並べ替え
print sorted(dict1.items(), key=lambda d: d[0])
2 値で並べ替え
# これは値に基づくソートです。最初にアイテムのキーと値の交換位置をリストに入れ、次にリストの各要素の最初の値、つまり元の値に従って並べ替えます。
ソート:
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 inrange(0,len(backitems))]
# それでも1行でそれを行います:
[ v for v insorted(di.values())]
# ラムダ式を使用した並べ替えは、より柔軟です。
sorted(d.items(), lambda x, y:cmp(x[1], y[1])),または逆の順序:
sorted(d.items(), lambda x, y:cmp(x[1], y[1]), reverse=True)
# ソートされた関数のキーパラメーター(func)を使用してソートします。#値で並べ替え
print sorted(dict1.items(), key=lambda d: d[1])
ナレッジポイントの拡張:
準備知識:
pythonでは、辞書は組み込みのデータタイプであり、順序付けられていないストレージ構造であり、各要素はキーと値のペアです。
例:dict = {'username': 'password'、 'database': 'master'}、ここで、 'username'と 'database'はキーであり、 'password'と 'master'は値であり、d [key]を介して渡すことができます。対応する値の参照を取得しますが、値でキーを取得することはできません。
辞書の場合、次の点を知っておく必要があります。
a。辞書のキーは大文字と小文字が区別されます。
b。辞書に重複するキーを含めることはできません。
c。辞書は順序付けられておらず、要素の順序の概念はなく、順序付けられたペアの単純な配置にすぎません。
これまでに、python辞書の並べ替え方法に関するこの記事を紹介しました。関連するpython辞書の並べ替え方法については、ZaLou.Cnの以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後さらにサポートされることを願っています。 ZaLou.Cn!
Recommended Posts