⊗pyPmLpSI 158 of 208 menu

Pythonにおけるシーケンスの同時反復処理

複数のシーケンスを同時に反復処理するには、関数 zipを適用できます。これにより、すべてのシーケンスの要素は、 同じインデックスを持つ要素からなるタプルとして出力されます。

次の2つのリストがあるとします:

lst1 = ['a', 'b', 'c'] lst2 = [1, 2, 3]

それらの要素をペアで出力してみましょう:

for el in zip(lst1, lst2): print(el)

実行結果:

('a', 1) ('b', 2) ('c', 3)

異なる型のシーケンスも反復処理できます。 セットとタプルをループと関数 zip に通してみましょう:

st = {'a', 'b', 'c'} tlp = (1, 2, 3) for el in zip(st, tlp): print(el)

実行結果:

('a', 1) ('b', 2) ('c', 3)

一方のシーケンスの長さがもう一方より長い場合、 短い方の要素数に合わせて反復処理されます:

lst1 = ['a', 'b', 'c', 'd', 'e'] lst2 = [1, 2, 3, 4] for el in zip(lst1, lst2): print(el)

実行結果:

('a', 1) ('b', 2) ('c', 3) ('d', 4)

関数 zip を使用して、3つのシーケンスを反復処理することもできます。 そのためには、関数のパラメータにすべてをカンマで区切って列挙します:

lst1 = ['a1', 'b1', 'c1'] lst2 = ['a2', 'b2', 'c2'] lst3 = ['a3', 'b3', 'c3'] for el in zip(lst1, lst2, lst3): print(el)

実行結果:

('a1', 'a2', 'a3') ('b1', 'b2', 'b3') ('c1', 'c2', 'c3')

実践問題

次の2つのリストがあります:

tst1 = [1, 3, 5] tst2 = [2, 4, 6]

それらの要素をペアでタプルとして出力してください。

次の2つのリストがあります:

tst1 = ['a', 'b', 'c'] tst2 = ['d', 'e', 'f']

これらから次のリストを取得してください:

['a', '1', 'b', '2', 'c', '3']

次の3つのリストがあります:

tst1 = [11, 12, 13, 14] tst2 = [21, 22, 23, 24] tst3 = [31, 32, 33, 34]

これらのリストの対応する要素を加算し、結果を新しいリストに書き込んでください。 加算は次の原則に従って行われます:

[ 11 + 21 + 31, 12 + 22 + 32, 13 + 23 + 33, 14 + 24 + 34, ]
日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否