在列表列表中查找最小数字

时间:2018-03-14 16:24:23

标签: python list dictionary int key

我有以下数据集:

data = 
{
a:[1,2,3]
b:[3,4,5]
c:[5,6,7]
...
}

我正在尝试从所有列表中找到索引1中的最小数字。

我能想象的唯一方法是:

num = []
index_number = 1

for var in data:
  num.append(data.get(var)[index_number])
return min(num)

但我认为这不是一个很好的解决方案。

此外,我将不得不找到与我刚找到的值对应的键。

有一个我不知道的好解决方案吗?

2 个答案:

答案 0 :(得分:2)

data = {'a': [1, 2, 3], 'b': [3, 4, 5], 'c': [5, 6, 7]}
min_key = min(data,key=lambda key:min(data[key]))

这告诉python你想要" min"数据的值dict,我们将使用每个键值列表的最小值作为查找min的比较键

答案 1 :(得分:1)

一个简单的理解可能会成功:

>>> data = {'a': [1, 2, 3], 'b': [3, 4, 5], 'c': [5, 6, 7]}
>>> index_number = 1
>>> min(((k, v[1]) for k, v in data.items()), key=lambda x: x[1])
('a', 2)

如果您只需要最小值,则可以使用更简单的方法

>>> data = {'a': [1, 2, 3], 'b': [3, 4, 5], 'c': [5, 6, 7]}
>>> index = 1
>>> min(v[index] for v in data.values())
2