0

辞書にコードを書くことについて1つの質問がありますが、コーディングを行ったのですが、一部で混乱しています。これは、パラメーター名がsort_by_value: "(dict of {immutable_type:int})->list"と説明であるということです。は、「ディクショナリ内のキーのリストを、値に従って昇順でソートして返します。同じ値のキーは、任意の順序でソートできます。」

そして私が書いた私のコードは

    def sort_by_value(dict):
        """
        (dict of {immutable_type:int}) -> list   """
        L = []
        for x in dict.values():
            L.append(x)
        L.sort()
        print L

このコードは、辞書がある場合にのみ言うような値で昇順します

    nd = {} 
    nd['john'] = 109090 
    nd['albert'] = 1900 
    nd['Tim'] = 18000 
    sort_by_value(nd)

リスト[1900、18000、109090]を取得しましたが、必要な値に関連付けられたキーを取得する必要があります['albert'、'Tim'、'john']

Print LIが書きたいと思う直前に、試してみて、別のforループを導入しようとしました。

   keyList= []

    for x in L:
        keyList.append(dict.get())
        if 

しかし、それがうまくいくかどうかはわかりません。helpppが必要です

4

1 に答える 1

1

組み込みの sorted 関数を使用して、その辞書のタプルをソートできます。

nd = {}
nd['john'] = 109090
nd['albert'] = 1900
nd['Tim'] = 18000

print sorted(nd.items(), key=lambda x: x[1])

どちらが返されますか:

[('albert', 1900), ('Tim', 18000), ('john', 109090)]

キーのみを取得する場合:

print map(lambda x: x[0], sorted(nd.items(), key=lambda x: x[1]))

あなたに与える:

['albert', 'Tim', 'john']

参照: http://wiki.python.org/moin/HowTo/Sorting/

于 2012-07-16T01:08:04.803 に答える