Trova il numero più grande in un elenco di numeri


91

Esiste un modo o una funzione semplice per determinare il numero più grande in un elenco di Python? Potrei semplicemente codificarlo, dato che ho solo tre numeri, tuttavia renderebbe il codice molto meno ridondante se potessi dire il meglio con una funzione incorporata o qualcosa del genere.

Risposte:



18

Puoi usare la funzione incorporata max()con più argomenti:

print max(1, 2, 3)

o un elenco:

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

o in effetti qualsiasi cosa iterabile.


3
Non è bene nominare le variabili come una parola chiave Python predefinita incorporata, che sovrascrive la parola chiave effettiva, (devi saperlo) :-)
U10-Forward

15

Questo approccio è senza usare la max()funzione

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)

Inoltre, se vuoi trovare l'indice del massimo risultante,

print(a.index(max_num))

Approccio diretto utilizzando la funzione max ()

La funzione max () restituisce l'elemento con il valore più alto o l'elemento con il valore più alto in un iterabile

Esempio: quando devi trovare il massimo su interi / numeri

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

Esempio: quando hai string

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

Fondamentalmente restituisce il nome con il valore più alto, ordinato alfabeticamente.


2
Perché mai non saresti in grado di utilizzare la funzione max?
Chris Foster

3
Quindi ho scritto questo per quelle persone che si preparano per l'intervista, in cui la domanda è trovare il massimo di un elenco senza utilizzare la funzione
max.Se

2
Se ti serve anche l'indice del max forse? Dovresti quindi includere semplicemente idx var nella riga for.
Kit Plummer

1
Non utilizzare maxcome nome di una variabile perché è il nome di un builtin.
wjandrea

11

Uso max()

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

2

max è una funzione incorporata in python, che viene utilizzata per ottenere il valore massimo da una sequenza, ovvero (lista, tupla, set, ecc ..)

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

# prints 12 

2

Puoi effettivamente ordinarlo:

sorted(l,reverse=True)

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

Ottieni:

[3,2,1]

Ma comunque, se vuoi ottenere il massimo, fai:

print(sort[0])

Ottieni:

3

se secondo max:

print(sort[1])

e così via...


1
Ordinare una lista è un'operazione più complessa O (n log n) che ottenere il valore massimo 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)

2
1) non c'è motivo per non fare my_list = ordinato ([int (raw_input ('Per favore scrivi un numero')) per _ in xrange (10)) invece di scrivere cose extra. 2) hai una lista chiamata Sort_list ma in realtà non la ordini 3) Non c'è niente nella domanda che chiede di filtrare solo i numeri dispari 4) Cosa fornisce ciò che le precedenti risposte 5 anni fa non lo facevano (oltre a rispondere a un domanda che non è stata posta, e in modo meno elegante)
Foon
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.