BOMBOLOM.COM

(python) Encontrar o valor máximo ou mínimo de um conjunto de listas

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.

04.09.2007 | Ler mais | Comentários | Tags ,

Voltar à Página principal | Made with PyBlosxom