[PYTHON] Suchthinweis: max (max (Liste)) darf nicht verwendet werden, wenn der Wert eines zweidimensionalen Arrays maximiert wird

a = []
a.append([-1,-1,-1])
a.append([-1, 2, -1])
a.append([-1, -1, 3])

Ich möchte den Maximalwert 3 in dieser Liste erhalten, wenn es eine Liste gibt. Mit anderen Worten

>>> max(list(map(lambda x: max(x), a)))
3

Ich will das tun. Zu diesem Zeitpunkt funktioniert max nicht, wenn max verschachtelt ist.

>>> max(max(a))
2

Dies ist ein Vergleich von "[-1, -1, -1]", "[-1, 2, -1]" und "[-1, -1, 3]", wenn max (a) ausgeführt wird. Getan werden. Dies wird in lexikalischer Reihenfolge verglichen

>>> [-1, 2, -1] > [-1, -1, 3]
True
>>> "acb" > "abz" #Mit diesem
True

Das ist weil

Lösung 1: Karte

>>> max(list(map(lambda x: max(x), a)))
3

Lösung 2: Erstellen Sie eine flache Liste in itertools.chain

>>> from itertools import chain
>>> list(chain(*a))
[-1, -1, -1, -1, 2, -1, -1, -1, 3]
>>> max(chain(*a))
3

Recommended Posts

Suchthinweis: max (max (Liste)) darf nicht verwendet werden, wenn der Wert eines zweidimensionalen Arrays maximiert wird
Beim Inkrementieren des Werts eines Schlüssels, der nicht vorhanden ist
[Python-Memo] Seien Sie vorsichtig, wenn Sie ein zweidimensionales Array erstellen (Liste der Listen).
Python Hinweis: Wenn der Befehl pip nicht verwendet werden kann
Seien Sie vorsichtig, wenn Sie die Eigenvektoren einer Matrix unterscheiden
Notieren Sie sich die Liste der grundlegenden Verwendungszwecke von Pandas
Der Rückgabewert (Generator) einer Funktion, die endlich und Ausbeute kombiniert, darf nicht direkt an next übergeben werden
Extrahieren Sie den Wert von dict oder list als Zeichenfolge
Geben Sie kein veränderbares Objekt (Listentyp, Wörterbuchtyp usw.) als Anfangswert des Funktionsarguments von Python an.