Finden Sie die größte Zahl in einer Liste von Zahlen

91

Gibt es eine einfache Möglichkeit oder Funktion, die größte Anzahl in einer Python-Liste zu bestimmen? Ich könnte es einfach codieren, da ich nur drei Zahlen habe, aber es würde den Code viel weniger redundant machen, wenn ich mit einer eingebauten Funktion oder so etwas das Beste sagen könnte.

Chris Foster
quelle

Antworten:

18

Sie können die eingebaute Funktion max()mit mehreren Argumenten verwenden:

print max(1, 2, 3)

oder eine Liste:

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

oder in der Tat alles iterable.

Cletus
quelle
3
Es ist nicht gut, Variablen ein standardmäßig eingebautes Python-Schlüsselwort zu nennen, das das eigentliche Schlüsselwort überschreibt (das müssen Sie wissen) :-)
U10-Forward
15

Dieser Ansatz ist ohne Verwendung von max()Funktion

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)

Auch wenn Sie den Index des resultierenden Maximums finden möchten,

print(a.index(max_num))

Direkte Annäherung mit der Funktion max ()

Die Funktion max () gibt das Element mit dem höchsten Wert oder das Element mit dem höchsten Wert in einer Iterable zurück

Beispiel: Wenn Sie max für ganze Zahlen / Zahlen finden müssen

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

Beispiel: Wenn Sie eine Zeichenfolge haben

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

Grundsätzlich wird der Name mit dem höchsten Wert in alphabetischer Reihenfolge zurückgegeben.

Chetan_Vasudevan
quelle
2
Warum könnten Sie die Max-Funktion jemals nicht nutzen?
Chris Foster
3
Also schrieb ich dies für diejenigen, die sich auf ein Interview vorbereiten, bei denen es darum geht, maximal eine Liste zu finden, ohne die Max-Funktion zu verwenden. Wenn Sie sich für ein Interview gut fühlen, stimmen Sie bitte ab
Chetan_Vasudevan
2
Benötigen Sie vielleicht auch den Index des Maximums? Sie würden dann einfach die idx var in die for-Zeile aufnehmen.
Kit Plummer
1
Nicht maxals Name einer Variablen verwenden, da dies der Name eines eingebauten Variablen ist.
Wjandrea
11

Verwenden max()

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

max ist eine in Python eingebaute Funktion, die verwendet wird, um den Maximalwert aus einer Sequenz zu erhalten, dh (Liste, Tupel, Menge usw.)

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

# prints 12 
Sanjay Idpuganti
quelle
2

Sie können es tatsächlich sortieren:

sorted(l,reverse=True)

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

Du erhältst:

[3,2,1]

Aber immer noch, wenn Sie das Maximum erreichen möchten:

print(sort[0])

Du erhältst:

3

wenn Sekunde max:

print(sort[1])

und so weiter...

U10-Vorwärts
quelle
1
Das Sortieren einer Liste ist eine komplexere Operation O (n log n) als nur das Erhalten des Maximalwerts 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
quelle
2
1) Es gibt keinen Grund, my_list = sorted ([int (raw_input ('Bitte geben Sie eine Zahl ein') ') für _ in xrange (10)) nicht auszuführen, anstatt zusätzliches Material einzugeben. 2) Sie haben eine Liste mit dem Namen sortiert_Liste, aber Sie sortieren sie nicht wirklich. 3) Es gibt nichts in der Frage, was nur das Herausfiltern von ungeraden Zahlen betrifft. 4) Was bedeutet dies, dass die vorherigen Antworten vor 5 Jahren dies nicht getan haben (außer der Beantwortung von a Frage, die nicht gestellt wurde, und auf weniger elegante Weise)
Foon