首页 > 解决方案 > 获取字典中的索引,而不是键值

问题描述

我有一本这样的字典:

header= {'f1': 13, 'f2': 7, 'f3': 45};

如您所见,header['f2'] = 7具有最小值,该项目是标题中的第二个(其索引为 1)。

我所做的?

我已经尝试使用此代码来获取标头中最小项目的索引(此处为 1),但它返回键值:

index = min(header)

输出:

f2

我想要的是?

我想获取字典中最小项目的索引,我该怎么做?

标签: pythondictionary

解决方案


字典没有索引

即使在 Python 3.6+(官方为 3.7+)中,字典是按插入顺序排列的,您也不能直接按位置提取键或值。对于collections.OrderedDict. 另请参阅:在 Python 3.6+ 中按位置高效访问字典项

min+enumerate

假设 Python 3.6+,您可以通过迭代根据插入顺序 提取键/值的位置。在这种情况下,您可以使用min自定义lambda函数:

header = {'f1': 13, 'f2': 7, 'f3': 45}

min_idx, (min_key, min_val) = min(enumerate(header.items()), key=lambda x: x[1][1])

print((min_idx, min_key, min_val))

(1, 'f2', 7)

推荐阅读