Lösen Sie Reduzieren ist in Python nicht definiert

Olorunfemi Akinlua 21 Juni 2023
Lösen Sie Reduzieren ist in Python nicht definiert

Von Zeit zu Zeit sehen wir uns oft mit Not Defined-Fehlermeldungen und allgemeiner mit NameError konfrontiert. Diese Fehlermeldungen sind typisch und leicht zu lösen, wenn ein einfaches Verständnis dessen, was in Ihrem Python-Code benannt wurde, vorhanden ist.

Die Fehler NameError und Not Defined stammen von einer nicht vorhandenen Variablen, Bindung, Funktion oder Bibliothek. Für diesen Kontext existiert die Funktion Reduzieren in Ihrem Code nicht.

In diesem Artikel wird die Lösung des Fehlers Reduzieren ist nicht definiert in Ihrem Python-Code erörtert.

Verwenden Sie functools, um NameError: name 'reduce' is not defined in Python zu lösen

Die Funktion reduce() hilft dabei, einen einzelnen Wert aus einer Liste zu berechnen, indem eine Lambda-Funktion für jedes Element innerhalb der Liste verwendet wird. Die Funktion reduce() baut einen Wert auf, indem sie das aktuelle Element aus dem Array nimmt und es mit dem aktuellen Wert kombiniert oder vergleicht, bis alle Elemente in der Liste durchlaufen sind.

Vor Python 3 funktionierte die Funktion reduce() als eingebaute Funktion; Daher hätte das folgende Code-Snippet zum Zusammenfassen aller Elemente innerhalb einer Liste funktioniert.

def anon(x, y):
    return x + y


sum = reduce(anon, [1, 2, 3, 4])
print(sum)

Wenn Sie jedoch den obigen Code ausführen, wird der folgende Fehler ausgegeben:

Traceback (most recent call last):
  File "c:\Users\akinl\Documents\HTML\python\txt.py", line 2, in <module>
    l = reduce(anon, [1,2,3,4])
NameError: name 'reduce' is not defined

Denn reduce() ist keine eingebaute Funktion mehr, sondern eine Funktion innerhalb einer eingebauten Bibliothek namens functools, die Funktionen höherer Ordnung und Operationen auf aufrufbaren Objekten enthält. Da es sich bei reduce() um eine Funktion höherer Ordnung handelt, ist es sinnvoll, vorhanden zu sein.

reduce() ist eine Funktion höherer Ordnung, weil sie eine andere Funktion als Argument nimmt. Um nun reduce() nutzen zu können, müssen wir functools importieren:

import functools


def anon(x, y):
    return x + y


sum = functools.reduce(anon, [1, 2, 3, 4])
print(sum)

Die Ausgabe des Codes:

10

Wir können es in unserem Code einfacher machen, das Schlüsselwort from zu verwenden, um reduce zu importieren:

from functools import reduce


def anon(x, y):
    return x + y


sum = reduce(anon, [1, 2, 3, 4])
print(sum)

Die Ausgabe des Codes:

10

Wir haben keinen reduce is not defined-Fehler mehr in unserem Code und können jetzt verstehen, worauf wir achten müssen, wenn wir einen solchen sehen.

Olorunfemi Akinlua avatar Olorunfemi Akinlua avatar

Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.

LinkedIn

Verwandter Artikel - Python Error