Python排序函数不做任何事情

时间:2012-09-01 02:12:44

标签: python sorting dictionary

我的字典看起来像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)

这不是我想要的。我也尝试了其他一些东西,但那些不起作用......任何想法?

1 个答案:

答案 0 :(得分:5)

这是按键将值作为字符串排序(即按字母顺序 - “1”在“3”之前出现在“6”之前...)而不是它们的整数值。如果要按键的数值对键进行排序,可以执行

iter(sorted(nums.items(), key=lambda x: int(x[0])))