我有以下数据集:
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)
但我认为这不是一个很好的解决方案。
此外,我将不得不找到与我刚找到的值对应的键。
有一个我不知道的好解决方案吗?
答案 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