3

私は次のような辞書を持っていますa = {'10': 2.0, '3': 2.0, '7': 1.0, '6': 1.0}

私が使う:

it = iter(sorted(nums.items()))

try:
    while(True):
        print it.next()

except StopIteration:
    print "\n\n"

キー値順に要素を印刷しますが、機能しません。私は得る

('10', 1.0)
('3', 1.6666666666666667)
('6', 1.0)
('7', 1.0)

それは私が望むものではありません。私も他のことをたくさん試しましたが、それらはうまくいきません..何かアイデアはありますか?

4

1 に答える 1

5

つまり、キーを整数値ではなく文字列として(つまり、アルファベット順で「1」は「3」の前に「6」の前に...)並べ替えます。キーを数値で並べ替える場合は、次のようにします。

iter(sorted(nums.items(), key=lambda x: int(x[0])))
于 2012-09-01T02:14:46.063 に答える