[解決済み] 基準に一致する最初のシーケンスアイテムを探す[重複]。
2022-03-15 07:28:47
質問
ある基準に合致する最初のリスト項目を見つけ、返すための最もエレガントで効率的な方法は何でしょうか?
例えば、オブジェクトのリストがあり、その中の最初のオブジェクトの属性が
obj.val==5
. もちろんリスト内包を使うこともできますが、O(n)がかかりますし、nが大きいと無駄が多くなります。を使ったループを使うこともできる。
break
しかし、もっとパイソン的でエレガントなソリューションがあるのではないかと思いました。
解決方法は?
オブジェクトのインデックスやソート情報が他にない場合、そのようなオブジェクトが見つかるまで反復する必要があります。
next(obj for obj in objs if obj.val == 5)
しかし、これは完全なリスト内包よりも高速である。この2つを比べてみてください。
[i for i in xrange(100000) if i == 1000][0]
next(i for i in xrange(100000) if i == 1000)
最初のものは5.75ms、2番目のものは58.3μs必要です(ループが100倍短いので100倍速い)。
関連
-
Pythonによるjieba分割ライブラリ
-
任意波形を生成してtxtで保存するためのPython実装
-
[解決済み】ImportError: PILという名前のモジュールがない
-
[解決済み] 'DataFrame' オブジェクトに 'sort' 属性がない
-
[解決済み] TypeError: 'DataFrame' オブジェクトは呼び出し可能ではない
-
[解決済み] Pythonでシングルトンを作成する
-
[解決済み] リストから最初の項目を削除するには?
-
[解決済み] イテレートから条件に合致する最初の項目を取得する
-
[解決済み】リストの内容を取り出して、別のリストに追加する
-
[解決済み】述語にマッチするシーケンスの最初の要素を探す
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
opencvとpillowを用いた顔認証システム(デモあり)
-
Python 人工知能 人間学習 描画 機械学習モデル作成
-
Pythonによるjieba分割ライブラリ
-
[解決済み】TypeErrorの修正方法。Unicodeオブジェクトは、ハッシュ化する前にエンコードする必要がある?
-
[解決済み】ilocが「IndexError: single positional indexer is out-of-bounds」を出す。
-
[解決済み】OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません。
-
[解決済み】Pythonスクリプトで「Expected 2D array, got 1D array instead: 」というエラーが発生?
-
[解決済み】LogisticRegression: Pythonでsklearnを使用して、未知のラベルタイプ: '連続'を使用しています。
-
[解決済み】Flaskのテンプレートが見つからない【重複あり
-
[解決済み] イテレートから条件に合致する最初の項目を取得する