2016-05-15 4 views
2

長さ 'n'のリストのタプルを作成する効率的で簡単な方法はありますか? Pythonでリストの長さタプルを初期化する

だから、私は私のようなもの行うことができますリストのリストを作成したい場合:

[[] for _ in range(list_length)] 

をそして、私は技術的に書くことができる同様の性質のリストのタプルを作成するには:

tuple([[] for _ in range(list_length)]) 

これは計算上非効率的ですが、より良い方法で記述できますか?

警告:リストのような変更可能なオブジェクトをタプル(不変)に配置することをお勧めした他の人は、実際には(私の場合はリストのリスト)リストを使うだけで、一般的には(計算上)より速くなるようです。

+1

タプルのリストは、短期的には狭い範囲の用途の外に、機能のスター引数のような使い方が珍しいことです。タプルの主な利点は、セットでの使用、辞書キーとしての使用などのために不変であることです。しかし、タプルの_contents_が変更可能である場合、そのタプル自体はそれらのどのロールでも安全に使用できません。 –

+0

うわー、実際に(私の非常に粗悪なベンチマークによると)リストのリストで同じことをするのと比べて、タプルのリストに作成、アクセス、追加するのにはそれほど時間がかかりません。 – Patrick

答えて

2

LCの代わりにジェネックスを使用してください。

tuple([] for _ in range(list_length)) 
+0

ありがとう!何らかの理由でそれは私には起こりませんでした。 – Patrick

関連する問題