2015-07-24 3 views
1

В python можно ли проверить, являются ли 2 наибольших значения в списке одинаковыми?Список Python проверяет, являются ли 2 наибольших значения одинаковыми

Это мой код:

list=[[A, teamAScore], [B, teamBScore], [C, teamCScore], [D, teamDScore]] 
list.sort() 
print(max(list)) 

Если Крупнейшее 2 значение одинаково, максимальная функция будет возвращать только один из них. Есть ли способ проверить, совпадают ли два последних значения в списке, поэтому я могу сравнить их по-другому? (Отдельная функция и т. Д.)

A, B, C и D - это строки. teamAScore и т. д. являются целыми числами

+1

Можете ли вы быть менее абстрактным, пожалуйста? Какие значения вы сравниваете здесь? Являются ли строки A, B etc и teamAScore и т. Д. Ints? –

+0

К сожалению, A, B, C и D являются строками. teamAScore и т. д. являются целыми числами – Humvee202

+0

Итак, вы хотите увидеть, появляется ли максимальное целое число два раза – The6thSense

ответ

1

Я предполагаю, что вы хотите получить максимальный балл, т. е. второй элемент, поэтому сначала получите максимальный балл, основанный на втором элементе каждого подсчета голосов, а затем сохраните все подсписки с баллами, равными max:

from operator import itemgetter 

lst = [[A, teamAScore], [B, teamBScore], [C, teamCScore], [D, teamDScore]] 
# get max of list based on second element of each sublist i.e teamxScore 
mx = max(lst,key=litemgetter(1))) 

# use a list comp to find all sublists where teamxScore is equal to the max 
maxes = [ele for ele in lst if ele[1] == mx[1]] 

Демо:

l = [["foo", 2], ["bar", 1], ["foobar", 2]] 
mx = max(l, key=itemgetter(1)) 

maxes = [ele for ele in l if ele[1] == mx[1]] 

Выход:

[['foo', 2], ['foobar', 2]] 

И foo, и foobar имели оценку, равную max, поэтому мы возвращаем оба подписок.

+0

Я не понимаю любой из этого кода xD, но я попробую его использовать - спасибо – Humvee202

+1

Спасибо за добавленное объяснение - имеет больше смысла. Чтобы на самом деле распечатать вывод, что мне нужно добавить? – Humvee202

+1

@ Humvee202, не беспокойтесь, просто напечатайте maxes –

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