查找列表子集的最大值?

时间:2017-01-04 15:47:38

标签: python list python-3.x tuples subset

我有一个Python数据解析脚本,可以将数据收集到元组列表中。元组的第一个元素是引用一组相关数据的“索引”。我想在每个数据集'index'的元组中找到第二个元素的最大值。

数据如下所示:

[[1, 99, '43.12', '-76,21'], [1, 98, ''43.13', '-76.22'], etc. ]

元组中的第一个元素是'index'值。所以稍后会增加。

[2, 52, '42.99', '-75.95']

所以我想在每个'index'值中找到第二个元素的最大值。我想按需提取该值,而不是创建结果列表,即找到数据集8的元素2的最大值。

我已经搜索了相当多的答案,但似乎没有一个足够接近。我发现的大多数问题都没有显示如何明确选择元素值,并且大多数都会创建结果列表。

1 个答案:

答案 0 :(得分:3)

此函数可能会返回您想要的值:

def my_max(data, index):
    return max(datum[1] for datum in data if datum[0] == index)

演示:

def my_max(data, index):
    return max(datum[1] for datum in data if datum[0] == index)

my_list = [
    [1, 99, '43.12', '-76,21'],
    [1, 98, '43.13', '-76.22'],
    [2, 52, '42.99', '-75.95'],
]

assert my_max(my_list, 1) == 99
assert my_max(my_list, 2) == 52