⊗pyPmLpSI 158 of 208 menu

Iterazione Simultanea di Sequenze in Python

Per iterare su più sequenze simultaneamente, si può utilizzare la funzione zip. In questo caso, tutti gli elementi delle sequenze saranno restituiti sotto forma di tuple, composte da elementi con lo stesso indice.

Esempio

Supponiamo di avere due liste:

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

Stampiamo i loro elementi a coppie:

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

Risultato dell'esecuzione del codice:

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

Esempio

È possibile iterare anche su sequenze di tipo diverso. Passiamo un insieme e una tupla attraverso il ciclo e la funzione zip:

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

Risultato dell'esecuzione del codice:

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

Esempio

Se una sequenza è più lunga dell'altra, l'iterazione avverrà fino agli elementi della sequenza più corta:

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

Risultato dell'esecuzione del codice:

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

Esempio

Con la funzione zip è possibile iterare anche su tre sequenze. Per farlo, è sufficiente elencarle tutte come parametri della funzione, separate da virgola:

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

Risultato dell'esecuzione del codice:

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

Problemi Pratici

Sono date due liste:

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

Stampate i loro elementi a coppie sotto forma di tupla.

Sono date due liste:

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

Ricavate da esse la seguente lista:

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

Sono date tre liste:

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

Sommate gli elementi corrispondenti di queste liste e registrate il risultato in una nuova lista. La somma avverrà secondo il seguente principio:

[ 11 + 21 + 31, 12 + 22 + 32, 13 + 23 + 33, 14 + 24 + 34, ]
Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta