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 回答