Encuentra el mayor número en una lista de números

93

¿Existe alguna forma o función fácil de determinar el mayor número en una lista de Python? Podría simplemente codificarlo, ya que solo tengo tres números, sin embargo, haría que el código sea mucho menos redundante si pudiera decir el mejor con una función incorporada o algo así.

Chris Foster
fuente

Respuestas:

18

Puede usar la función incorporada max()con múltiples argumentos:

print max(1, 2, 3)

o una lista:

list = [1, 2, 3]
print max(list)

o de hecho cualquier cosa iterable.

cletus
fuente
3
No es bueno nombrar las variables como una palabra clave predeterminada de Python, que sobrescribe la palabra clave real, (debe saberlo) :-)
U10-Forward
16

Este enfoque es sin usar la max()función

a = [1,2,3,4,6,7,99,88,999]
max_num = 0
for i in a:
    if i > max_num:
        max_num = i
print(max_num)

Además, si desea encontrar el índice del máximo resultante,

print(a.index(max_num))

Enfoque directo usando la función max ()

La función max () devuelve el elemento con el valor más alto o el elemento con el valor más alto en un iterable.

Ejemplo: cuando tienes que encontrar el máximo en enteros / números

a = (1, 5, 3, 9)
print(max(a))
>> 9

Ejemplo: cuando tienes cuerda

x = max("Mike", "John", "Vicky")
print(x)
>> Vicky

Básicamente, devuelve el nombre con el valor más alto, ordenado alfabéticamente.

Chetan_Vasudevan
fuente
2
¿Por qué no podrías usar la función max?
Chris Foster
3
Así que escribí esto para aquellas personas que se preparan para la entrevista, donde la pregunta es encontrar el máximo de una lista sin usar la función máxima. Si cree que es bueno para la entrevista, por favor
vota hacia arriba
2
¿Si también necesita el índice del máximo? A continuación, solo incluiría idx var en la línea for.
Kit Plummer
1
No lo use maxcomo nombre de una variable porque es el nombre de una variable incorporada.
wjandrea
11

Utilizar max()

>>> l = [1, 2, 5]
>>> max(l)
5
>>> 
Chetan
fuente
2

max es una función incorporada en Python, que se usa para obtener el valor máximo de una secuencia, es decir (lista, tupla, conjunto, etc.)

print(max([9, 7, 12, 5]))

# prints 12 
Sanjay Idpuganti
fuente
2

De hecho, puedes ordenarlo:

sorted(l,reverse=True)

l = [1, 2, 3]
sort=sorted(l,reverse=True)
print(sort)

Usted obtiene:

[3,2,1]

Pero aún así, si quieres obtener el máximo, haz lo siguiente:

print(sort[0])

Usted obtiene:

3

si el segundo máximo:

print(sort[1])

y así...

U10-Adelante
fuente
1
Ordenar una lista es una operación más compleja O (n log n) que simplemente obtener el valor máximo O (n)
Allan
-6
    #Ask for number input
first = int(raw_input('Please type a number: '))
second = int(raw_input('Please type a number: '))
third = int(raw_input('Please type a number: '))
fourth = int(raw_input('Please type a number: '))
fifth = int(raw_input('Please type a number: '))
sixth = int(raw_input('Please type a number: '))
seventh = int(raw_input('Please type a number: '))
eighth = int(raw_input('Please type a number: '))
ninth = int(raw_input('Please type a number: '))
tenth = int(raw_input('Please type a number: '))

    #create a list for variables
sorted_list = [first, second, third, fourth, fifth, sixth, seventh, 
              eighth, ninth, tenth]
odd_numbers = []

    #filter list and add odd numbers to new list
for value in sorted_list:
    if value%2 != 0:
        odd_numbers.append(value)
print 'The greatest odd number you typed was:', max(odd_numbers)
Shalbert
fuente
3
1) no hay razón para no hacer my_list = sorted ([int (raw_input ('Por favor, escriba un número')) para _ en xrange (10)) en lugar de escribir cosas adicionales. 2) tiene una lista llamada sorted_list pero en realidad no la ordena 3) No hay nada en la pregunta sobre filtrar solo números impares 4) ¿Qué proporciona esto que las respuestas anteriores hace 5 años no lo hicieron (además de pregunta que no se hizo, y de una manera menos elegante)
Foon