【发布时间】:2018-01-25 16:19:14
【问题描述】:
我正在寻求帮助以解决一个问题...
假设我有一个列表:
list1 =[[1, 0, 2.83], [3, 1, 1.0], [5, 4, 2.83], [7, 0, 4.47], [6, 5, 4.24], [3, 2, 'x'], [4, 6, 'asd']
我想做的是基于内部列表的第三个元素的类型,从这些值中获取过滤后的最小值,前提是这些值是浮点数。
(如果第三个元素的值相同,那完全没问题,但是我很好奇这是否不会提供任何例外 - 对我来说,最好是随机选择它们)
我正在尝试这样的事情:
list1 = [[1, 0, 2.83], [3, 1, 1.0], [5, 4, 2.83], [7, 0, 4.47], [6, 5, 4.24], [3, 2, 'x'], [4, 6, 'asd']
something = min(filter(lambda x: x[2] is not isinstance(x[2], float) == True,list1))
...通过我从该列表中获取第一个元素:[1, 0, 2.83],而不是[3, 1, 1.0],其中第三个元素最低并且是浮点数。
【问题讨论】:
-
预期的
1.0究竟来自哪里? -
发布的示例中您想要的输出是什么?
-
对不起,我输入了错误的值。我想要的该列表的输出是
[3, 1, 1.0],因为1.0是 inner lists 中 third 元素中最低的
标签: python python-3.x list filter