python 中的列表解析和生成表达式
在需要改变列表而不是需要新建某列表时,可以使用列表解析。列表解析表达式为:
[expr for iter_var in iterable] [expr for iter_var in iterable if cond_expr]
第一种语法:首先迭代iterable里所有内容,每一次迭代,都把iterable里相应内容放到iter_var中,再在表达式中应用该iter_var的内容,最后用表达式的计算值生成一个列表。
第二种语法:加入了判断语句,只有满足条件的内容才把iterable里相应内容放到iter_var中,再在表达式中应用该iter_var的内容,最后用表达式的计算值生成一个列表。
举例如下:
>>> L= [(x+1,y+1) for x in range(3) for y in range(5)]
>>> L
[(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (2, 1), (2, 2), (2, 3), (2, 4), (2, 5), (3, 1), (3, 2), (3, 3), (3, 4), (3, 5)]
>>> N=[x+10 for x in range(10) if x>5]
>>> N
[16, 17, 18, 19]
生成器表达式
生成器表达式是在python2.4中引入的,当序列过长, 而每次只需要获取一个元素时,应当考虑使用生成器表达式而不是列表解析。生成器表达式的语法和列表解析一样,只不过生成器表达式是被()括起来的,而不是[],如下:
(expr for iter_var in iterable)
(expr for iter_var in iterable if cond_expr)
例:
>>> L= (i + 1 for i in range(10) if i % 2)
>>> L
>>> L1=[]
>>> for i in L:
... L1.append(i)
...
>>> L1
[2, 4, 6, 8, 10]
生成器表达式并不真正创建数字列表, 而是返回一个生成器,这个生成器在每次计算出一个条目后,把这个条目“产生”(yield)出来。 生成器表达式使用了“惰性计算”(lazy evaluation,也有翻译为“延迟求值”,我以为这种按需调用call by need的方式翻译为惰性更好一些),只有在检索时才被赋值( evaluated),所以在列表比较长的情况下使用内存上更有效。A generator object in python is something like a lazy list. The elements are only evaluated as soon as you iterate over them.
一些说明:
1. 当需要只是执行一个循环的时候尽量使用循环而不是列表解析,这样更符合python提倡的直观性。
for item in sequence:
process(item)
2. 当有内建的操作或者类型能够以更直接的方式实现的,不要使用列表解析。
例如复制一个列表时,使用:L1=list(L)即可,不必使用:
L1=[x for x in L]
3. 如果需要对每个元素都调用并且返回结果时,应使用L1=map(f,L), 而不是 L1=[f(x) for x in L]

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Python ist als High-Level-Programmiersprache einfach zu erlernen und zu verwenden. Sobald Sie ein Python-Programm schreiben müssen, werden Sie unweigerlich auf Syntaxfehler stoßen, und Fehler in der Ausdruckssyntax kommen häufig vor. In diesem Artikel besprechen wir, wie Fehler in der Ausdruckssyntax in Python behoben werden. Fehler in der Ausdruckssyntax gehören zu den häufigsten Fehlern in Python und werden normalerweise durch eine falsche Verwendung der Syntax oder das Fehlen notwendiger Komponenten verursacht. In Python bestehen Ausdrücke normalerweise aus Zahlen, Zeichenfolgen, Variablen und Operatoren. am häufigsten

In C oder C++ hat das Komma "," unterschiedliche Verwendungszwecke. Hier erfahren wir, wie man sie nutzt. Kommas als Operatoren. Der Kommaoperator ist ein binärer Operator, der den ersten Operanden auswertet, das Ergebnis verwirft, dann den zweiten Operanden auswertet und den Wert zurückgibt. Der Kommaoperator hat in C oder C++ die niedrigste Priorität. Beispiel #include<stdio.h>intmain(){ intx=(50,60); inty=(func1(),func2());} Hier wird x 60 zugewiesen. Für die nächste Anweisung wird func1( zuerst ausgeführt

Einführung in das Schreiben von Exponentialfunktionsausdrücken in der C-Sprache und Codebeispiele. Was ist eine Exponentialfunktion? Die Exponentialfunktion ist ein häufiger Funktionstyp in der Mathematik. Sie kann in der Form f(x)=a^x ausgedrückt werden a ist die Basis und x ist der Exponent. Exponentialfunktionen werden hauptsächlich verwendet, um exponentielles Wachstum oder exponentiellen Abfall zu beschreiben. Codebeispiel einer Exponentialfunktion In der Sprache C können wir die Funktion pow() in der Mathematikbibliothek verwenden, um die Exponentialfunktion zu berechnen. Das Folgende ist ein Beispielprogramm: #include

Lambda-Ausdrücke in Java Mit der Veröffentlichung von Java 8 sind Lambda-Ausdrücke zu einem der am meisten besorgniserregenden und diskutierten Themen unter Java-Entwicklern geworden. Lambda-Ausdrücke können die mühsamen Schreibmethoden von Java-Programmierern vereinfachen und außerdem die Lesbarkeit und Wartbarkeit von Programmen verbessern. In diesem Artikel werden wir uns eingehend mit Lambda-Ausdrücken in Java befassen und wie sie ein einfacheres und intuitiveres Programmiererlebnis in Java-Code ermöglichen.

Ein Lambda-Ausdruck ist eine anonyme Funktion, die bequem zum Durchlaufen einer Sammlung verwendet werden kann. In diesem Artikel stellen wir vor, wie man Lambda-Ausdrücke zum Durchlaufen von Sammlungen verwendet, und stellen spezifische Codebeispiele bereit. In Python lautet das Syntaxformat eines Lambda-Ausdrucks wie folgt: Lambda-Parameterliste: Die Parameterliste eines Ausdrucks-Lambda-Ausdrucks kann einen oder mehrere durch Kommas getrennte Parameter enthalten. Der Ausdruck ist der Rückgabewert der Lambda-Funktion. Schauen wir uns unten ein einfaches Beispiel an

Der Lambda-Ausdruck ist, wie der Name schon sagt, eine anonyme Funktion mit dem Pfeilsymbol (->) als Kern. Es ermöglicht Ihnen, Codeblöcke als Argumente an andere Methoden zu übergeben oder sie zur späteren Verwendung in Variablen zu speichern. Die Syntax des Lambda-Ausdrucks ist prägnant und leicht zu verstehen und eignet sich sehr gut für die Verarbeitung von Datenflüssen und parallelem Rechnen. 1. Die grundlegende Syntax des Lambda-Ausdrucks Die grundlegende Syntax des Lambda-Ausdrucks lautet wie folgt: (Parameterliste) -> {Codeblock} Unter diesen sind die Parameterliste und der Codeblock optional. Wenn nur ein Parameter vorhanden ist, können die Klammern weggelassen werden. Wenn der Codeblock nur eine Zeile umfasst, können die geschweiften Klammern weggelassen werden. Der folgende Codeblock verwendet beispielsweise einen Lambda-Ausdruck, um 1 zu einer Zahl hinzuzufügen: Liste

Einführung und grundlegende Syntax von Lambda-Ausdrücken Lambda-Ausdrücke bestehen aus einer Funktionsparameterliste, einem Doppelpunkt und einem Funktionskörper. Die Liste der Funktionsparameter ist dieselbe wie die einer gewöhnlichen Funktion, und der Funktionskörper ist ein Ausdruck und keine Reihe von Anweisungen. #Beispiel: Geben Sie eine Funktion zurück, die zwei Zahlen empfängt und deren Summe zurückgibt sum=lambdax,y:x+y Anwendungsszenarien von Lambda-Ausdrücken Lambda-Ausdrücke eignen sich sehr gut für den Einsatz als Callback-Funktionen, Filterfunktionen und Mapping-Funktionen. Rückruffunktion: Eine Rückruffunktion ist eine Funktion, die innerhalb einer anderen Funktion aufgerufen wird. Lambda-Ausdrücke erleichtern das Erstellen von Rückruffunktionen, ohne deren Namen zu deklarieren. Filterfunktion: Die Filterfunktion dient zum vollständigen Herausfiltern

Mit der rasanten Entwicklung der Computertechnologie werden Programmiersprachen ständig aktualisiert und verbessert. Unter anderem wird PHP als häufig verwendete Webentwicklungssprache ständig innoviert und bringt neue Versionen auf den Markt. Vor kurzem hat die Veröffentlichung der PHP8.0-Version große Aufmerksamkeit erregt. Unter anderem haben die Verbesserungen des Ausnahmebehandlungsmechanismus in der neuen Version große Aufmerksamkeit erregt. Dieser Artikel konzentriert sich auf das Thema der Unterstützung von Try-Anweisungsblöcken für Ausdrücke in PHP8.0. 1. Verbesserungen im Ausnahmebehandlungsmechanismus von PHP8.0 In früheren Versionen, P
