輸入はtimeit デフT1(): L = [] レンジ(10000)のIのための: L = L + [I] デフT2(): L = [] レンジ(10000)のIのための: l.append(I) デフT3(): L = [I iに対して範囲内(10000)] デフT4(): L =リスト(範囲(10000)) デフT5(): L = [] レンジ(10000)のIのための: l.insert(0、I) timeit輸入タイマーから タイマ1 =タイマ( "T1()"、 "__main__インポートt1から") タイマ2 =タイマー( "T2()"、 "__main__インポートt2から") タイマ3 =タイマ( "T3()"、 "__main__インポートt3から") タイマ4 =タイマ( "T4()"、 "__main__インポートt4から") timer5 =タイマ( "T5()"、 "__main__インポートt5から") プリント( "拼接"、timer1.timeit(番号= 100)、 "秒") 印刷( "テール挿入"、timer2.timeit(番号= 100)、 "秒") 印刷( "ヘッダー挿入"、timer5.timeit(番号= 100)、 "秒") 印刷( "式のリスト"、timer3.timeit(番号= 100)、 "秒") 印刷( "リスト生成"、timer4.timeit(番号= 100)、 "秒")
結果
13.677228502秒スプライス
テール0.10198352399999955秒挿入
ヘッド挿入2.405467333999999秒
秒に式0.04342989099999883リスト
リストの生成を0.029161853999998044秒
結論
結果から、添加元素効率が先端から後端からよりもはるかに高い追加し、追加の要素を挿入します
リストに(範囲を())を使用し、他のはるかに高いよりも予想外の効率を生成!!!ショック!
組み込み関数のリストの複雑さ
注:kは変化値であり、このようなスライスkとして= YX
辞書の複雑な関数を構築しました:
彼は加えました:
timeitモジュール
timeitモジュールは小さなPythonコードの実行速度をテストするために使用することができます。
クラスtimeit.Timer(STMT = 'パス'、セットアップ= 'パス'、タイマー= <タイマ機能>)
-
タイマーは、コード実行のスピードクラスの小片の尺度です。
-
STMTパラメータは、テストするコード声明(なステートメント)です。
-
コードセットを実行するときに、セットアップパラメータが必要です。
-
タイマーパラメータは、タイマー機能、およびプラットフォームに依存しています。
timeit.Timer.timeit(番号= 1000000)
オブジェクトの実行速度の方法は、Timerクラスステートメントをテストしました。テストコードは、デフォルトは1,000,000であるときnumber引数は、テストの数です。時間のかかるリターンコード、秒フロートの種類を行う方法。