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