> AA = [('JAMES', 124), ('KATE', 78), ('MARIE', 62), ('NGUYEN', 59)]
>
> BB = [('JACK', 133), ('JILL', 68), ('SARAH', 67), ('MARGARITA', 66),
> ('NATE', 66), ('DANI', 55)]
>
> CC =[('MARYLOU', 155), ('PETER', 98), ('ALEXA', 57), ('MARK', 54),
> ('KAREN', 34)]
У меня много списков (AA, BB и CC), содержащих кортежи, содержащие строку и соответствующую цифру.
Для каждого списка (например, AA, BB и CC) я хочу, чтобы функция принимала наибольшую цифру (124 в списке AA) в этих кортежах за 1 и выводила оставшиеся цифры всех других кортежей в том же самом перечислите как часть самой высокой цифры среди кортежей (78/124 = 0,63). Доли должны быть 2 десятичных знака.
Целевой выход
AA = [('JAMES', 1), ('KATE', 0.63), ('MARIE', 0.5), ('NGUYEN', 0.48)]
BB = [('JACK', 1), ('JILL', 0.51), ('SARAH', 0.5), ('MARGARITA', 0.5), ('NATE', 0.5), ('DANI', 0.41)]
CC =[('MARYLOU', 1), ('PETER', 0.63), ('ALEXA', 0.37), ('MARK', 0.35), ('KAREN', 0.22)]
Пожалуйста, предложите советы по решению этой проблемы.
Пока что я составил рейтинг кортежей внутри каждого списка.
def rank(L): #to sort tuples inside the List by the value inside the tuples
L = L.sort(reverse = True, key = lambda x : x[1])