2019年11月3日午後4時07分33秒
##比較*リスト*と*辞書の*操作
タイプ | リスト | 辞書 |
指数 | 私 | キー |
加えます | 追加し、拡張し、挿入 | D [キー] =値 |
削除 | ポップ、*削除 | ポップ |
更新 | L [I] =値 | D [キー] =値 |
正チェック | L [i]は、L [I:J] | D [キー]、コピー |
検索 | インデックス(値)、カウント(値) | / |
他の | ソート、逆 | has_key、更新 |
一般的な操作のための原則として、最高のパフォーマンス
#リスト
リスト:最も一般的な操作を持っています
割り当てインデックス値+プレス: `L [i]を= v``のVの= 1 [i]は`
+リストの成長:
- )(追加
- __追加()__
- "+"
最初のn個の整数のリストの4種類の生成方法
#のループ接続 DEFのTEST1(): L = [] のための I における範囲(1,000 ): L = L + [I] #追記()メソッド DEFのTEST2(): L = [] のための I における(1,000レンジ): L .append(I) #リスト由来の一般式 DEF Test3は(): L = [I 用 I における範囲(1,000 )] #の転送リストの範囲()関数呼び出し DEF :TEST4() L =リスト(レンジ(1000))
性能比較
timeit インポートタイマ T1 =タイマ(" TEST1()"、" __main__ imporrt TEST1から" ) 印刷(" 連結%のF秒\ n "%t1.timeit(数= 1000 )) T2 =タイマ(" TEST2()"、" __main__ imporrt TEST2から" ) 印刷(" %のF秒を追加\ n "%はt2.timeit(数= 1000 )) 、T3 =タイマ(" TEST3()"、"__main__ imporrt TEST3から" ) プリント(" 理解%のF秒\ n "%t3.timeit(数= 1000 )) T4 =タイマ(" TEST4()" " __main__ imporrt TEST4から" ) プリント(" リスト範囲%F秒\ nは"%のt4.timeit(番号= 1000))
- はtimeitモジュールTimer.timeit()メソッド[番号]パラメータのコールを繰り返す回数を示し
結果は1 <2 <3 <4の実行します
連結1.082888秒は 0.054237秒追加 理解0.027933秒の リスト範囲0.011302秒
## list.pop操作
比較ポップ()とPOP(I)
インポートはtimeit popzero = timeit.Timer(" x.pop(0)"、" __main__インポートXから" ) popend = timeit.Timer(" x.pop()"、" から__main__インポートX " ) X =リスト(範囲(2000000 )) プリント(popzero.timeit(数= 1000 )) X =リスト(範囲(2000000 )) プリント(popend.timeit(数= 1000))
業績
1.5929707000000235 5.389999989802163e-05
2時間の成長傾向を比較
印刷(" \ TPOP(0)\ T \ T \ TPOP()" ) のための I における範囲(1000000,100000001,1000000 ): X = リスト(範囲(I)) PT = popend.timeit(数= 1000 ) 、X = リスト(範囲(I)) PZ = popzero.timeit(数= 1000 ) 、印刷(" %の15.5f、%15.5f "%(PZ、PT))