私はゼロのリストが必要な問題を解決しています。その後、リスト内のいくつかの値を更新する必要があります。今私は私の心の中で2つの選択肢があります。これはまず最初にゼロのリストを作成して値を更新するか、辞書を作成して値を更新することです。リストとPythonでゼロを格納する辞書
リスト方式:
l=[0]*n
辞書法:今すぐ
d={}
for i in range(n):
d[i]=0
複雑に辞書を構築するためには、O(n)
あるし、キーを更新するとO(1)
です。しかし、私はPythonが上記の方法を使ってゼロのリストを構築する方法を知らない。
ここで、nが大きな値であるとしましょう。上記の方法は、このタスクに適していますか?リストメソッドはどのようにPythonで実装されていますか? 。また、なぜ上記のリストメソッドはリストの理解の方法よりもゼロのリストを作成するより速いのですか?
私はいくつかの実験を行い、実行時間を印刷して、実際の違いを見ることをお勧めします。 – Acepcs
ディクショナリの初期化は、 'dict.fromkeys(range(n)、0)'よりも優れています。 –
'l = [0] * n'は単に' l = list .__ mul __([0]、n) 'を実行しますが、言語構成を使用します。シーケンス型は通常、それらを繰り返すために使用される '__mul__'を実装します。 –