Python ist eine sehr flexible Sprache und kann eine einzelne Aufgabe auf viele Arten ausführen, beispielsweise kann eine Initialisierungsliste auf viele Arten ausgeführt werden. Der folgende Artikel stellt Ihnen verschiedene Python-Initialisierungsmethoden vor und vergleicht die Effizienz dieser Methoden. Ich hoffe, dass er für Sie hilfreich ist.
Im Folgenden stellen wir einige Methoden zum Initialisieren einer Liste in Python vor (wir erstellen eine Liste der Größe 1000 und initialisieren sie mit Null).
Methode 1: For-Schleife und append() verwenden
Wir können eine leere Liste erstellen und die append()-Methode verwenden, um die zu übergeben for-Schleife n-mal ausführen, um Elemente zur Liste hinzuzufügen.
arr = [] for i in range(1000): arr.append(0)
Methode 2: While-Schleife mit Zählervariable und append() verwenden
Dies ähnelt etwas Methode 1, aber wir verwenden while Schleife statt for-Schleife.
arr = [] i = 0 while(i<1000): arr.append(0)
Methode Drei: Listenverständnis verwenden
Listenverständnis ist eine Methode, die von Mathematikern verwendet wird, um bekannte Notationen zu implementieren. Die pythonische Art des Sammelns . Es besteht aus eckigen Klammern, die einen Ausdruck enthalten, gefolgt von einer for-Klausel und einer optionalen if-Klausel.
Der Ausdruck kann ein beliebiger Objekttyp sein, den wir in die Liste einfügen möchten. Da wir die Liste mit Null initialisiert haben, ist unser Ausdruck nur 0.
arr = [0 for i in range(1000)]
Erläuterung: Verwenden Sie Listenverständnis, um effizienten Code zu schreiben, und seine Ausführungsgeschwindigkeit ist 35 % schneller als die for-Schleife.
Methode 4: Verwenden Sie den *-Operator
-Operator kann als [Objekt] * n verwendet werden, wobei n die Anzahl der Elemente im ist Array.
arr = [0]*1000
Vergleich der Code-Ausführungszeit
Werfen wir einen Blick auf die Ausführungszeit dieser vier Methoden, um zu sehen, welche Methode schneller ist.
Beispiel: Wir berechnen die durchschnittliche Zeit, die jede Methode benötigt, um ein Array mit 10.000 Elementen 500 Mal zu initialisieren.
# 导入时间模块以计算时间 import time # 初始化列表以保存时间 forLoopTime = [] whileLoopTime = [] listComprehensionTime = [] starOperatorTime = [] # 重复此过程500次,并计算所用的平均时间。 for k in range(500): # 开始时间 start = time.time() # 声明空列表 a = [] # 执行for循环10000次 for i in range(10000): a.append(0) # 停止时间 stop = time.time() forLoopTime.append(stop-start) # 开始时间 start = time.time() # 声明空列表 a = [] i = 0 # 执行while循环10000次 while(i<10000): a.append(0) i+= 1 stop = time.time() whileLoopTime.append(stop-start) start = time.time() # 使用列表推导(List Comprehension) 来初始化列表 a = [0 for i in range(10000)] stop = time.time() listComprehensionTime.append(stop-start) start = time.time() # 使用*运算符 a = [0]*10000 stop = time.time() starOperatorTime.append(stop-start) print("for循环所用的平均时间:" + str(sum(forLoopTime)/100)) print("while循环所用的平均时间:" + str(sum(whileLoopTime)/100)) print("列表推导所用的平均时间:" + str(sum(listComprehensionTime)/100)) print("* 运算符所用的平均时间: " + str(sum(starOperatorTime)/100))
Ausgabe:
Hinweis: Die Zeiten variieren je nach Plattform, auf der dieser Code ausgeführt wird. Diese Zeiten werden nur verwendet, um die relative Leistung dieser Initialisierungsmethoden zu untersuchen.
● Es ist ersichtlich, dass die Zeit, die die for- und while-Schleifen benötigen, nahezu gleich ist.
● Die Leistung des Listenverständnisses ist viel besser als bei for- und while-Schleifen, erstere ist 3-5 mal schneller. Ein weiteres Beispiel für diesen Unterschied lässt sich erkennen, wenn wir versuchen, eine Liste mit Zahlen von 1 bis 1000 zu erstellen. Die Verwendung eines Listenverständnisses ist viel besser als die Verwendung von append().
a = [i for i in range(1,1001)]
● Die Verwendung des *-Operators ist schneller als die anderen, so sollten Sie die Liste initialisieren
Empfehlung für ein entsprechendes Video-Tutorial: „Python-Tutorial“
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere spannende Inhalte finden Sie in den entsprechenden Tutorial-Kolumnen auf der chinesischen PHP-Website! ! !
Das obige ist der detaillierte Inhalt vonWie initialisiere ich eine Liste in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!