[解決済み] Pythonジェネレータで1つ先の要素を見る(peek)方法とは?
2023-04-03 23:12:25
質問
Pythonのジェネレータで、1つ先の要素を見る方法がわかりません。私が見たとたんに、それは消えてしまいます。
こんな感じです。
gen = iter([1,2,3])
next_value = gen.next() # okay, I looked forward and see that next_value = 1
# but now:
list(gen) # is [2, 3] -- the first value is gone!
以下はより実戦的な例です。
gen = element_generator()
if gen.next_value() == 'STOP':
quit_application()
else:
process(gen.next())
1つ先の要素を見ることができるジェネレータを書くのを手伝ってくれる人はいますか?
どのように解決するのですか?
PythonのジェネレータAPIは一方通行です。読み込んだ要素をプッシュバックすることはできません。しかし、新しいイテレータを作るには itertools モジュール を使って新しいイテレータを作成し、その要素を前置することができます。
import itertools
gen = iter([1,2,3])
peek = gen.next()
print list(itertools.chain([peek], gen))
関連
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み] ファイルのコピー方法について教えてください。
-
[解決済み] Pythonでファイルやフォルダを削除する方法は?
-
[解決済み] リストの最後の要素を取得する方法
-
[解決済み] Pythonで文字列の部分文字列を取得するにはどうすればよいですか?
-
[解決済み] pipでPythonの全パッケージをアップグレードする方法
-
[解決済み] Pythonで文字列を小文字にするには?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み] 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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] リストのリストからフラットなリストを作るには?
-
[解決済み] PILからopenCVフォーマットへの変換
-
[解決済み] SQLAlchemy: 日付フィールドをフィルタリングする方法は?
-
[解決済み] データフレームをソートした後にインデックスを更新する
-
[解決済み] DataFrameに日付間の日数カラムを追加する pandas
-
[解決済み] Django Rest Framework ファイルアップロード
-
[解決済み] SQLAlchemy - テーブルのリストを取得する
-
[解決済み] Python Logging でログメッセージが2回表示される件
-
[解決済み] Django で全てのリクエストヘッダを取得するにはどうすれば良いですか?
-
[解決済み] virtualenvsはどこに作成するのですか?