2017-01-04 8 views
0

У меня есть скрипт синтаксического анализа данных Python, который собирает данные в список кортежей. Первый элемент кортежа - это «индекс» для ссылки на набор связанных данных. Я хочу найти максимальное значение для второго элемента в кортеже для каждого набора данных «index».Найти максимальное значение подмножества списка?

Данные выглядит следующим образом:

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

Первый элемент кортежа является «индекс» значение. Поэтому позже он увеличивается.

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

Поэтому я хочу найти максимальное значение для второго элемента в пределах каждого значения индекса. Я хотел бы вытащить эту ценность по запросу, а не создавать список результатов, то есть найти максимальное значение элемента 2 для набора данных 8.

Я искал вокруг немного, чтобы найти ответ , но никто не был достаточно близко. Большинство вопросов, которые я нашел, не показывают, как явно выбрать значение элемента, и большинство создайте список результатов.

+1

Я думаю, что на 'кортеж' вы имеете в виду 'список'; по крайней мере, это то, что сгенерировано, если вы используете скобки для создания объекта. –

+2

'max' имеет необязательный параметр' key' –

+0

Кроме того, если первое число является «индексом», почему в вашем наборе данных есть два списка с индексом 1? –

ответ

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 
+0

Ах! Я думаю, что это то, что я ищу! Я попробую! – Dwiggit

+0

Он работал как шарм! Я поддержал, но это не видно из-за моего нынешнего представителя. (Только что начал с stackoverflow.) Спасибо за помощь! – Dwiggit

 Смежные вопросы

  • Нет связанных вопросов^_^