[解決済み] Python: n個のリストのリストを作成する最速の方法
2022-12-21 16:40:53
質問
空白のリストを作成するにはどうしたらよいのでしょうか。
[[],[],[]...]
Pythonがメモリ上のリストをどのように扱うかのため、これはうまくいきません。
[[]]*n
これは
[[],[],...]
を作りますが、各要素は同じリストです。
d = [[]]*n
d[0].append(1)
#[[1],[1],...]
リスト内包のようなものが効く。
d = [[] for x in xrange(0,n)]
しかし、これはループのためにPython VMを使用しています。Cで書かれていることを利用して)暗黙のループを使う方法はないのでしょうか?
d = []
map(lambda n: d.append([]),xrange(0,10))
これは実際に遅いです :(
どのように解決するのですか?
と比べてわずかに速い唯一の方法です。
d = [[] for x in xrange(n)]
は
from itertools import repeat
d = [[] for i in repeat(None, n)]
を新たに作成する必要はありません。
int
オブジェクトを生成する必要がなく、私のマシンでは約15%高速になりました。
編集 : NumPyを使うと、Pythonのループを回避することができます。
d = numpy.empty((n, 0)).tolist()
というように、リスト内包の方が2.5倍ほど遅くなります。
関連
-
[解決済み] リストのリストからフラットなリストを作るには?
-
[解決済み] リスト内のアイテムのインデックスを検索する
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み] リストが空かどうかを確認するにはどうすればよいですか?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み] python-requests モジュールからのすべてのリクエストをログに記録します。
-
[解決済み] Flaskで非同期タスクを作る
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Pandasのデータフレームでタプルの列を分割するにはどうしたらいいですか?
-
[解決済み] Pythonのマルチプロセッシングプールimap_unorderedの呼び出しの進捗を表示しますか?
-
[解決済み] Pythonのインスタンス変数とクラス変数
-
[解決済み] SQLAlchemy: 日付フィールドをフィルタリングする方法は?
-
[解決済み] Python 2.7サポート終了?
-
[解決済み] pandasのタイムゾーンに対応したDateTimeIndexを、特定のタイムゾーンに対応したナイーブなタイムスタンプに変換する。
-
[解決済み] サブフォルダからのインポートモジュール
-
[解決済み] subprocess.run()の出力を抑制またはキャプチャするには?
-
[解決済み] Pythonで、ウェブサイトが404か200かを確認するためにurllibをどのように使用しますか?
-
[解決済み] 単純な文字列からtimedeltaオブジェクトを作成する方法