[解決済み】2つのリストを並列に反復処理する方法は?
質問
Pythonで2つの反復記号を持っていて、それらをペアで確認したいのです。
foo = (1, 2, 3)
bar = (4, 5, 6)
for (f, b) in some_iterator(foo, bar):
print("f: ", f, "; b: ", b)
という結果になるはずです。
f: 1; b: 4
f: 2; b: 5
f: 3; b: 6
一 の方法は、インデックスを繰り返し処理することです。
for i in range(len(foo)):
print("f: ", foo[i], "; b: ", bar[i])
でも、それだとなんだかピリッとしないような気がするんです。もっといい方法はないのでしょうか?
解決方法は?
Python 3
for f, b in zip(foo, bar):
print(f, b)
zip
のうち、短い方が停止します。
foo
または
bar
が停止します。
で
パイソン3
,
zip
はタプルのイテレータを返します。
itertools.izip
Python2では、リストを取得するために
を使用すると、タプルの
list(zip(foo, bar))
. そして、両方のイテレータが終了するまで
を使い果たすと、次のようになります。
itertools.zip_longest
.
Python 2
で
Python 2
,
zip
はタプルのリストを返します。これは
foo
と
bar
は質量がない。もし両方が質量を持つなら
zip(foo,bar)
は不必要に巨大な
という一時的な変数に置き換える必要があります。
itertools.izip
または
itertools.izip_longest
これはリストの代わりにイテレータを返します。
import itertools
for f,b in itertools.izip(foo,bar):
print(f,b)
for f,b in itertools.izip_longest(foo,bar):
print(f,b)
izip
のどちらかが停止したとき
foo
または
bar
が枯渇した場合。
izip_longest
が両方揃うと停止します。
foo
と
bar
を使い果たす。
短い方のイテレータを使い切ったとき。
izip_longest
を持つタプルを生成します。
None
をそのイテレータに対応する位置に置く。また、別の
fillvalue
の他に
None
を選択します。はこちらをご覧ください。
全文
.
また、次のことにも注意してください。
zip
とその
zip
-のようなbrethenは、引数として任意の数のiterableを受け取ることができます。例えば
for num, cheese, color in zip([1,2,3], ['manchego', 'stilton', 'brie'],
['red', 'blue', 'green']):
print('{} {} {}'.format(num, color, cheese))
印刷物
1 red manchego
2 blue stilton
3 green brie
関連
-
[解決済み] TypeError: 'DataFrame' オブジェクトは呼び出し可能ではない
-
[解決済み】Flaskのテンプレートが見つからない【重複あり
-
[解決済み] リストのリストからフラットなリストを作るには?
-
[解決済み] JavaScriptのオブジェクトをループスルーまたは列挙するにはどうすればよいですか?
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み] リストが空かどうかを確認するにはどうすればよいですか?
-
[解決済み] 2つのリストを辞書に変換するにはどうしたらいいですか?
-
[解決済み】Pythonで2つの変数の論理xorを取得するにはどうすればいいですか?
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
Evidentlyを用いたPythonデータマイニングによる機械学習モデルダッシュボードの作成
-
Python LeNetネットワークの説明とpytorchでの実装
-
Pythonの画像ファイル処理用ライブラリ「Pillow」(グラフィックの詳細)
-
PythonでECDSAを実装する方法 知っていますか?
-
[解決済み】ImportError: sklearn.cross_validation という名前のモジュールがない。
-
[解決済み】RuntimeWarning: 割り算で無効な値が発生しました。
-
[解決済み】Pythonスクリプトで「Expected 2D array, got 1D array instead: 」というエラーが発生?
-
[解決済み】Flask ImportError: Flask という名前のモジュールがない
-
[解決済み】 TypeError: += でサポートされていないオペランド型: 'int' および 'list' です。
-
[解決済み] 2つのリストに対して反復処理を行い、各反復処理ごとに各リストから1つの要素を取得する、より良い方法はないでしょうか?[重複している]。