Este é um post de José Lopes.
Este post fornece um conjunto de opções para encontar o valor máximo de um conjunto de listas, e por analogia o valor mínimo.
Imagine-se, por exemplo, que se tem as seguintes listas:
A = [1, 2, 9] B = [100, 50, 75] C = [6, 2, 80] D = [42, 33, 5]
Pretendemos obter 100 como valor máximo e 1 como valor mínimo.
As builtin functions do Python que podem dar estes valores são:
Vou apresentar de seguida algumas formas de obter o valor máximo, sendo que para
o valor mínimo bastará mudar o max por min.
A escolha dependerá da situação particular do problema e do gosto pessoal do programador.
Opção 1
Listas = A,B,C,D max([max(i) for i in Listas])
Opção 2
max([max(i) for i in (A, B, C, D)])
Opção 3
Listas = A,B,C,D max(map(max,Listas))
Opção 4
Criar uma função:
def get_max(seq): try: return max(map(get_max, seq)) except TypeError: return seq
Para a utilizar:
Listas = A,B,C,D get_max(Listas) ou: get_max([A,B,C,D])
Opção 5
Listas = A,B,C,D import itertools max(itertools.chain(*Listas))
Como nota final só gostaria de mencionar que a constante Listas criada nos exemplos não é obrigatória em todos os casos, podendo-se usar directamente A,B,C,D como no exemplo da Opção 2 ou [A,B,C,D] como no caso particular da Opção 4.