Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich in Python effizient Listen mit wiederholten Elementen ohne Listenverständnis erstellen?

Wie kann ich in Python effizient Listen mit wiederholten Elementen ohne Listenverständnis erstellen?

Linda Hamilton
Linda HamiltonOriginal
2024-12-19 14:21:13987Durchsuche

How Can I Efficiently Create Lists with Repeated Elements in Python Without List Comprehensions?

Erstellen von Listen mit wiederholten Elementen

In Python kann das Erstellen mehrerer Listen mit denselben wiederholten Elementen auf verschiedene Arten erreicht werden. In dieser Diskussion wird eine Methode untersucht, die Listenverständnisse umgeht.

Lösung:

Python stellt den Operator * zum Replizieren von Elementen bereit. Um eine Liste mit n Vorkommen des Elements e zu erstellen, verwenden Sie einfach den Ausdruck [e] * n.

Beispiel:

e = 5
list_of_e = [e] * 10  # [5, 5, 5, 5, 5, 5, 5, 5, 5, 5]

Hinweis:

Wenn e eine leere Liste ist, erstellt diese Methode eine Liste mit n Verweisen auf dieselbe leere Liste. Die Bereitstellung unabhängiger leerer Listen erfordert einen anderen Ansatz.

Leistungsbewertung:

Obwohl itertools.repeat() zunächst schneller erscheint, ist eine Konvertierung in eine Liste erforderlich, um Vergleiche durchzuführen . Der Operator * gibt direkt eine Liste zurück, was zu einer besseren Leistung führt:

import timeit
n = 1000000
timeit.timeit('[0] * 10', number=n)  # Faster
timeit.timeit('list(itertools.repeat(0, 10))', number=n)  # Slower

Fazit:

Um Listen mit wiederholten Elementen ohne Listenverständnis zu erstellen, nutzen Sie den Operator * , das eine prägnante und effiziente Lösung bietet. Wenn eine verzögerte Generierung von Elementen erforderlich ist, ziehen Sie itertools.repeat() in Betracht.

Das obige ist der detaillierte Inhalt vonWie kann ich in Python effizient Listen mit wiederholten Elementen ohne Listenverständnis erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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