Python排序函数没有';我什么也不做

Python排序函数没有';我什么也不做,python,sorting,dictionary,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

我有一本字典,看起来像
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”在“3”之前,而不是在“6”之前)。如果要按键的数值对键进行排序,可以这样做

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

大卫·罗宾逊:有什么办法可以让它按int值排序吗。对于一个基本的问题,我很抱歉,我只是遵循这个线程并尝试复制代码,但我一直得到NameError:name'nums'未定义。此外,在上述代码中,Cemre有一个名为“a”的字典,“x”在该代码中起什么作用?非常感谢您提供的任何帮助。@user1590499:
nums
是要排序的字典(Cemre称之为
a
nums
,但这没有什么区别-您可以将其命名为
nums={'10':2.0',3':2.0',7':1.0',6':1.0}
x
lambda x:int(x[0])的参数
-您可以阅读lambda函数以了解其工作原理。感谢您的澄清。顺便说一句,为什么不使用for循环对其进行循环?这将比使用while更紧凑,下一步,除了……我的python知识有点生疏,所以只需尝试使用我记得的任何脚本即可:)谢谢你的建议,虽然我觉得它很好。如果你不想按默认顺序排序,你必须指定排序方式。酷-将来,只需执行“for e in it:print e”(如果有人知道如何在iPad上使用内联代码反引号符号,请告诉我!)