python - 不明白这个用于获取列表列表中最小值的解决方案是如何工作的

标签 python list

我有当前的列表列表:

item1 = [3.00, 'Item1']
item2 = [4.50, 'Item2']
item3 = [5.00, 'Item3']
item4 = [2.00, 'Item4']

items = [item1, item2, item3, item4]

我想找到具有最小浮点值的列表。这是我找到它的方法:

minitem = min(min(item[0:]) for item in items)

我理解它在做什么,但我不理解语法(或如何阅读它)。

我自然地将 item[0] 放在内部 min() 调用中,因为这将引用列表中的第一个位置,它是一个 float ,但是我收到“TypeError,'float'对象不可迭代”。

我不明白为什么我必须为内部 min() 调用指定一个范围,因为它只是我计算最小值的列表中的第一个点。

最佳答案

让我们看一下:

minitem = min(min(item[0:]) for item in items)

item[0:] 与简单的 item 相同(您从第一个元素切片到最后一个元素)。

为 items 中的 item 计算 min(item[0:]) 有点不确定,因为它返回 3.00'Item1'< 中较小的一个4.50'Item2' 中较小的一个,依此类推。这恰好满足了您的要求(返回 float 而不是字符串),但只是侥幸。

最后,外部 min() 返回最小的 float 。

这是我的写法:

In [7]: min(item[0] for item in items)
Out[7]: 2.0

关于python - 不明白这个用于获取列表列表中最小值的解决方案是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27430677/

相关文章:

python - 如何为具有S形激活的简单神经网络进行反向传播?

list - 基于kotlin中的另一个ArrayList对ArrayList进行排序

c# - 根据 C# 中对象列表中不同属性的值组合特定属性的值?

r - 在 R 中查找列表元素

java - 将字符串列表拆分为 map 列表

Python JIRA SOAPpy 在 findIssue 上烦人的重定向

python - Theano 中的循环相关

python - 双下划线__在python中是什么意思?

c# - 如何在此示例中使用列表

python - 在 python 中进程运行时打印