python中字典的前n个条目

时间:2014-01-12 14:56:00

标签: python

大家好,我有一本看起来像这样的字典:

[[['Test', 0,1],['Test2', 0,4],['Test3', 0,5],['Test4', 0,2],['Test5', 0,6],...]]

如何获得前两名(例如)?

预期结果:

[['Test3', 0,5],['Test5',0,6]]

3 个答案:

答案 0 :(得分:2)

test = [[['Test', 0,1],['Test2', 0,4],['Test3', 0,5],['Test4', 0,2],['Test5', 0,6]]]
result = sorted(test[0], key=lambda x: x[2])[-2:]
print(result)

输出:

[['Test3', 0, 5], ['Test5', 0, 6]]

这样的东西?

(我假设你实际上是指['Test', 0, 1]是一个包含3个元素的列表,这些元素将被第三个元素排序而不是第二个元素列表,第二个元素是float,在这种情况下它应该是['Test', 0.1]你可以看看@ jonrsharpe的答案。我还假设输出顺序(从最低到最高)是相关的。)

答案 1 :(得分:2)

按第三个值排序:

>>> sorted(l[0], key=lambda x: x[2])[-2:]
[['Test3', 0, 5], ['Test5', 0, 6]]

答案 2 :(得分:1)

那是字典,它是一个包含另一个包含列表的列表的列表([])。每个子子列表包含三个元素:

['Test2', 0, 4]
#^0       ^1 ^2

请注意,Python不允许逗号用户作为小数点;我想你想0.4

假设,对子列表进行排序并提取两个最高的子子列表很容易:

from operator import itemgetter
output = sorted(lst[0], key=itemgetter(1), reverse=True)[:2]

如果我对逗号有误,请将参数改为itemgetter 2