Znajdź największą liczbę na liście liczb

93

Czy jest jakiś łatwy sposób lub funkcja, aby określić największą liczbę na liście Pythona? Mógłbym to po prostu zakodować, ponieważ mam tylko trzy liczby, jednak uczyniłoby to kod znacznie mniej zbędnym, gdybym potrafił określić największą z wbudowaną funkcją lub czymś w tym rodzaju.

Chris Foster
źródło

Odpowiedzi:

18

Możesz użyć wbudowanej funkcji max()z wieloma argumentami:

print max(1, 2, 3)

lub lista:

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

a właściwie cokolwiek iterowalnego.

cletus
źródło
3
Nie jest dobrze nazywać zmiennym domyślnym wbudowanym słowem kluczowym Pythona, które nadpisuje rzeczywiste słowo kluczowe (musisz to wiedzieć) :-)
U10-Forward
16

To podejście jest bez użycia max()funkcji

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)

Jeśli chcesz znaleźć indeks wynikowego maksimum,

print(a.index(max_num))

Podejście bezpośrednie za pomocą funkcji max ()

Funkcja max () zwraca element o najwyższej wartości lub element o najwyższej wartości w iterowalnej

Przykład: kiedy musisz znaleźć max na liczbach całkowitych / liczbach

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

Przykład: kiedy masz ciąg

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

Zasadniczo zwraca nazwę o najwyższej wartości, uporządkowaną alfabetycznie.

Chetan_Vasudevan
źródło
2
Dlaczego nie miałbyś nigdy korzystać z funkcji max?
Chris Foster,
3
Więc napisałem to dla tych ludzi, którzy przygotowują dla wywiadu, w którym pytanie jest znaleźć maksymalnie listy bez użycia max function.If czujesz jego dobre dla wywiadu prosimy upvote
Chetan_Vasudevan
2
Jeśli potrzebujesz również indeksu maksimum? Następnie wystarczy dołączyć idx var w wierszu for.
Kit Plummer
1
Nie używaj maxjako nazwy zmiennej, ponieważ jest to nazwa wbudowanego.
wjandrea
11

Posługiwać się max()

>>> l = [1, 2, 5]
>>> max(l)
5
>>> 
Chetan
źródło
2

max jest funkcją wbudowaną w Pythonie, która służy do uzyskania maksymalnej wartości z sekwencji, tj. (lista, krotka, zestaw itp.)

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

# prints 12 
Sanjay Idpuganti
źródło
2

Możesz to posortować:

sorted(l,reverse=True)

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

Dostajesz:

[3,2,1]

Ale nadal, jeśli chcesz uzyskać maksimum, zrób:

print(sort[0])

Dostajesz:

3

jeśli drugie maksimum:

print(sort[1])

i tak dalej...

U10-Forward
źródło
1
Sortowanie listy jest bardziej złożoną operacją O (n log n) niż po prostu uzyskanie maksymalnej wartości 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
źródło
3
1) nie ma powodu, aby nie robić my_list = sortowane ([int (raw_input ('Proszę wpisać liczbę')) for _ in xrange (10)) zamiast wpisywać dodatkowe rzeczy. 2) masz listę o nazwie sort_list, ale tak naprawdę jej nie sortujesz 3) Nie ma nic w pytaniu z pytaniem o odfiltrowywanie tylko liczb nieparzystych 4) Co z tego wynika, że ​​poprzednie odpowiedzi 5 lat temu nie (poza odpowiedzią na pytanie, które nie zostało zadane, i to w mniej elegancki sposób)
Foon