繁体   English   中英

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

[英]Find smallest number in list of lists

我有以下数据集:

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)

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

另外,我还必须找到与我刚刚找到的值相对应的键。

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

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

这告诉python您想要数据字典的“最小”值,我们将使用每个键值的最小值作为比较键来查找最小值

一个简单的理解就可以解决问题:

>>> 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM