2017-10-22 78 views
1

我有一本字典,看起来像:如何排序一个字典(有对象的值)的值

{1228548: Person(1228548, 'Xantippe', 42.00, 1.10, 96, 56554), 1456010: Person(1456010, 'Mirabelle', 65.00, 2.16, 83, 67906), 1527181: Person(1527181, 'Betteanne', 81.00, 2.09, 43, 62790)... 

,我想从最低到最高这是在步数的条件来排序这些值56554,67906和62790 ...在每个人物品的末尾,我将如何去做这件事?

+0

的可能的复制[如何排序字典值?](https://stackoverflow.com/questions/613183/how-to-sort-a-dictionary-by-value)在那里最多的答案微不足道的修改。 – jpmc26

回答

1

,而不是迭代的人(未分类)字典:

for id_num, person in people.items(): 

可以遍历通过的步数命令键:

for id_num in sorted(people, key=lambda x: x.total_steps): 
    p = person_dict[id_num] 
    #... 
+0

不应该是'key = lambda x:x.total_steps'? –

+0

@HaleemurAli oops ...谢谢你的好成绩! – alfasin

+0

你的排序错误,因为键('int')不会有'total_steps'的属性。除此之外,这个问题是重复的。如果OP无法弄清楚如何适应愚蠢的答案(添加属性访问的一个简单步骤),他们不会从你的答案中学到任何东西,而且你正在喂帮助吸血鬼。 – jpmc26