2017-04-02 62 views
1

我排序基于作为在列表上第三元素(在值)的特定值的字典排序字典键与排序的值沿那些排序值对应于?打印通过使用

谢谢你的期待。

回答

1

使用items而不是keys

print(sorted(dict.items(), key=lambda item: item[1][2], reverse=True)[:3]) 

或保存排序键,并用它来获取项目:

keys = sorted(dict, key=lambda key: dict[k][2], reverse=True)[:3] 
items = [(key, dict[key]) for key in keys] 
print(items) 

如果你想值seaparately:

keys = sorted(dict, key=lambda k: dict[k][2], reverse=True)[:3] 
values = [dict[key] for key in keys] 

BTW ,请勿使用dict作为变量名称;它阴影内置函数/类型dict

+0

谢谢,这是做的伎俩。而且我认为你错误地将它键入k而不是键(在最后一段代码中)。可能想改变这一点。干杯! – Sherby

+0

@Sherby,你说得对。我修复了代码。感谢您的评论。 – falsetru

0

您可以保存排序的列表并打印所需的格式。

sorted_list = sorted(dict.keys(), key=lambda k: dict[k][2], reverse=True)[:3] 
for key in sorted_list: 
    print 'key is '+ key + ' value is '+ sorted_list[key][3] 
+0

感谢您的帖子。然而,我得到这样的错误:print'key is'+ key +'value is'+ sorted_list [key] [2] “TypeError:列表索引必须是整数,而不是str” – Sherby

+0

对不起。我想你应该使用这一行然后: print'key is'+ key [0] +'value is'+ key [3] – ida