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.

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.


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.


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


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 

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...


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)

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.