Zip-funktio

Funktio zip luo iteraattorin, joka yhdistää elementit sekvensseistä (listat, tuplet, joukot). Funktio palauttaa iteraattorin, jossa kaikki elementit ensimmäisestä ja toisesta sekvenssistä yhdistetään yhteen järjestyksessä. Funktion parametrissa määritellään kaikki meitä kiinnostavat tuplet, listat, joukot jne.

Syntaksi

pythonzip(ensimmäinen sekvenssi, toinen sekvenssi jne.)

Esimerkki

Luodaan funktion zip avulla uusi tuple kahdesta lähtöaineistosta:

pythontlp1 = ('a', 'b', 'c')
tlp2 = (1, 2, 3)

res = zip(tlp1, tlp2)
print(tuple(res))

Koodin suorituksen tulos:

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

Esimerkki

Luodaan nyt funktion zip avulla uusi tuple kahdesta listasta:

pythonlst1 = ['d', 'e', 'f']
lst2 = [4, 5, 6]

res = zip(lst1, lst2)
print(tuple(res))

Koodin suorituksen tulos:

python(('d', 4), ('e', 5), ('f', 6))

Esimerkki

Luodaan tuple kahdesta joukosta:

pythonst1 = {'a', 'b', 'c'}
st2 = {'d', 'e', 'f'}

res = zip(st1, st2)
print(tuple(res))

Koodin suorituksen tulos:

python(('a', 'd'), ('c', 'e'), ('b', 'f'))

Esimerkki

Luodaan nyt tuple kolmesta joukosta:

pythonst1 = {'a', 'b', 'c'}
st2 = {'d', 'e', 'f'}
st3 = {1, 2, 3}

res = zip(st1, st2, st3)
print(tuple(res))

Koodin suorituksen tulos:

python(('c', 'f', 1), ('b', 'd', 2), ('a', 'e', 3))

Esimerkki

Funktion zip avulla voidaan samanaikaisesti iteroida useita objekteja. Esimerkkinä iteroidaan kolmea listaa:

pythonlst1 = [1, 2, 3]
lst2 = [4, 5, 6]
lst3 = [7, 8, 9]

for el1, el2, el3 in zip(lst1, lst2, lst3):
  print(el1, el2, el3)

Koodin suorituksen tulos:

python1 4 7
2 5 8
3 6 9

Katso myös

  • funktio filter,
    joka suodattaa iterroitavat objektit
  • funktio map,
    joka iteroi iterroitavat objektit