Предполагая, что отступ в вашей реальной программе правильный, и что это Python 3.x (поскольку вы, похоже, используете печать как функцию), проблема будет в вашем заявлении лямбда. Очень маленький пример, чтобы показать вашу проблему -
>>> a = lambda (x,y) : x+y
File "", line 1
a = lambda (x,y) : x+y
^
SyntaxError: invalid syntax
В Python 3.x, tuples
не может быть частью синтаксиса параметра lambda, то есть вы не можете напрямую распаковать элемент в несколько аргументов (как может быть сделано в Python 2.x). Вместо этого вам нужно будет использовать одну переменную, а затем получить доступ к каждому элементу кортежа, используя индекс. Пример -
print("The Overall Winner is,", sorted(data, key=lambda x: sum(n[1] for n in x[1]), reverse=True),sum(event[1] for event in event_data))
Кроме того, это кажется мне нечитаемым, вам следует разбить его на несколько строк (возможно, за исключением промежуточных результатов в разных переменных перед печатью, это было бы более читаемым).
Как вы говорите в комментариях -
Например, на этом рисунке мне нужна самая высокая строка с общим количеством точек, которые будут напечатаны, как показано в picture.
blockquote>Если вам нужен элемент с наивысшим значением, тогда возьмите первый элемент, и поскольку элементы вашего массива снова будут списками, используйте индекс, чтобы получить его имя. Пример -
print("The Overall Winner is,", sorted(data, key=lambda x: sum(n[1] for n in x[1]), reverse=True)[0][0],sum(event[1] for event in event_data))
Для получения последних требований в соответствии с комментариями сделайте -
sortedlist = sorted(data, key=lambda x: sum(n[1] for n in x[1]), reverse=True) print("The Overall Winner is,", sortedlist[0][0], sum(n[1] for n in sortedlist[0][1]))