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