Heim Backend-Entwicklung Python-Tutorial python 中的列表解析和生成表达式

python 中的列表解析和生成表达式

Jun 16, 2016 am 08:47 AM
表达式

列表解析

在需要改变列表而不是需要新建某列表时,可以使用列表解析。列表解析表达式为:

[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
at 0xb749a52c>
>>> 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]
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie behebt man Fehler in der Python-Ausdruckssyntax? Wie behebt man Fehler in der Python-Ausdruckssyntax? Jun 24, 2023 pm 05:04 PM

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 und C++ wird Komma zum Trennen von Ausdrücken oder Anweisungen verwendet In C und C++ wird Komma zum Trennen von Ausdrücken oder Anweisungen verwendet Sep 09, 2023 pm 05:33 PM

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 Exponentialfunktionsausdrücke in der Sprache C Einführung in Exponentialfunktionsausdrücke in der Sprache C Feb 18, 2024 pm 01:11 PM

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-Ausdruck in Java Lambda-Ausdruck in Java Jun 09, 2023 am 10:17 AM

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.

Durchlaufen Sie eine Sammlung mithilfe von Lambda-Ausdrücken Durchlaufen Sie eine Sammlung mithilfe von Lambda-Ausdrücken Feb 19, 2024 pm 07:32 PM

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

Java-Lambda-Ausdruck in der Praxis: Die Geheimnisse der funktionalen Programmierung mit Code entschlüsseln Java-Lambda-Ausdruck in der Praxis: Die Geheimnisse der funktionalen Programmierung mit Code entschlüsseln Feb 26, 2024 am 10:25 AM

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

Erweiterter Leitfaden zu Python-Lambda-Ausdrücken: Vom Anfänger bis zum Meister Erweiterter Leitfaden zu Python-Lambda-Ausdrücken: Vom Anfänger bis zum Meister Feb 24, 2024 pm 03:31 PM

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

Der try-Anweisungsblock in PHP8.0 unterstützt Ausdrücke Der try-Anweisungsblock in PHP8.0 unterstützt Ausdrücke May 14, 2023 am 08:12 AM

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

See all articles