Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python-リストを初期化するのにどちらが速いですか?


Pythonは非常に柔軟な言語であり、単一のタスクをさまざまな方法で実行できます。たとえば、リストの初期化はさまざまな方法で実行できます。ただし、これらの一見類似した方法には微妙な違いがあります。シンプルさと読みやすさで人気のあるPythonは、C++やJavaに比べて遅いことでも同様に悪名高いです。 「for」ループは特に遅いことが知られていますが、map()やfilter()などのメソッドはCで記述されているため、高速であることが知られています。

# import time module to calculate times
import time
# initialise lists to save the times
forLoopTime = []
whileLoopTime = []
listComprehensionTime = []
starOperatorTime = []
# repeat the process for 500 times
# and calculate average of times taken.
for k in range(500):
   # start time
   start = time.time()
   # declare empty list
   a = []
   # run a for loop for 10000 times
   for i in range(10000):
      a.append(0)
   # stop time
   stop = time.time()
   forLoopTime.append(stop-start)
   # start time
   start = time.time()
   # declare an empty list
   a = []
   i = 0
   # run a for loop 10000 times
   while(i<10000):
      a.append(0)
      i+= 1
   stop = time.time()
   whileLoopTime.append(stop-start)
   start = time.time()
   # list comprehension to initialize list
   a = [0 for i in range(10000)]
   stop = time.time()
   listComprehensionTime.append(stop-start)
   start = time.time()
   # using the * operator
   a = [0]*10000
   stop = time.time()
   starOperatorTime.append(stop-start)
print("Average time taken by for loop: " + str(sum(forLoopTime)/100))
print("Average time taken by while loop: " + str(sum(whileLoopTime)/100))
print("Average time taken by list comprehensions: " + str(sum(listComprehensionTime)/100))
print("Average time taken by * operator: " + str(sum(starOperatorTime)/100))    

出力

Average time taken by for loop: 0.00623725175858
Average time taken by while loop: 0.00887670278549
Average time taken by list comprehensions: 0.00318484544754
Average time taken by * operator: 0.000371544361115

  1. TkinterPythonで最大化されたウィンドウを初期化します

    Tkinterは、アプリケーションの初期化中に、デフォルトのサイズでデフォルトのウィンドウを作成します。 ジオメトリを使用してウィンドウのジオメトリをカスタマイズできます メソッド。 ただし、ウィンドウを最大化するために、 state()を使用できます。 tkinterウィンドウのスケーリングに使用できるメソッド。 「ズーム」状態の値をウィンドウに渡した後、ウィンドウを最大化します。 例 #Import the required libraries from tkinter import * #Create an instance of tkinter frame win= Tk() #

  2. Pythonでのベクトル化

    この記事では、Python3.xを使用した実装に関連するベクトル化とさまざまな手法について学習します。またはそれ以前。 ベクトル化とは何ですか? ベクトル化は、ループを使用せずに配列を実装する手法です。代わりに関数を使用すると、コードの実行時間と実行時間を効率的に最小化するのに役立ちます。さまざまな演算が、ベクトルの内積などの配列ではなく、ベクトルに対して実行されています。これは、単一の出力を生成するため、スカラー積とも呼ばれます。外部積は、ベクトルの(長さXの長さ)に等しい次元の二乗行列になります。要素同じインデックスの要素と行列の次元を積む賢明な乗算は変更されません。 内積/内積