Zip Python ()

A função zip () pega iteráveis ​​(pode ser zero ou mais), agrega-os em uma tupla e a retorna.

A sintaxe da zip()função é:

 zip (* iteráveis)

Parâmetros zip ()

Parâmetro Descrição
iterables podem ser iteráveis ​​integrados (como: lista, string, dict) ou iteráveis ​​definidos pelo usuário

Leitura recomendada: Iteradores Python, __iter__ e __next__

Valor de retorno do zip ()

A zip() função retorna um iterador de tuplas com base nos objetos iteráveis.

  • Se não passarmos nenhum parâmetro, zip()retorna um iterador vazio
  • Se um único iterável é passado, zip()retorna um iterador de tuplas com cada tupla tendo apenas um elemento.
  • Se vários iteráveis ​​forem passados, zip()retorna um iterador de tuplas com cada tupla tendo elementos de todos os iteráveis.
    Suponha que dois iteráveis ​​sejam passados ​​para zip(); um iterável contendo três e outro contendo cinco elementos. Então, o iterador retornado conterá três tuplas. É porque o iterador para quando o iterável mais curto se esgota.

Exemplo 1: Python zip ()

 number_list = (1, 2, 3) str_list = ('one', 'two', 'three') # No iterables are passed result = zip() # Converting iterator to list result_list = list(result) print(result_list) # Two iterables are passed result = zip(number_list, str_list) # Converting iterator to set result_set = set(result) print(result_set)

Resultado

 () ((2, 'dois'), (3, 'três'), (1, 'um'))

Exemplo 2: número diferente de elementos iteráveis

 numbersList = (1, 2, 3) str_list = ('one', 'two') numbers_tuple = ('ONE', 'TWO', 'THREE', 'FOUR') # Notice, the size of numbersList and numbers_tuple is different result = zip(numbersList, numbers_tuple) # Converting to set result_set = set(result) print(result_set) result = zip(numbersList, str_list, numbers_tuple) # Converting to set result_set = set(result) print(result_set)

Resultado

 ((2, 'DOIS'), (3, 'TRÊS'), (1, 'UM')) ((2, 'dois', 'DOIS'), (1, 'um', 'UM'))

O operador * pode ser usado em conjunto com zip()para descompactar a lista.

 zip (* zippedList)

Exemplo 3: descompactando o valor usando zip ()

 coordinate = ('x', 'y', 'z') value = (3, 4, 5) result = zip(coordinate, value) result_list = list(result) print(result_list) c, v = zip(*result_list) print('c =', c) print('v =', v)

Resultado

 (('x', 3), ('y', 4), ('z', 5)) c = ('x', 'y', 'z') v = (3, 4, 5) 

Artigos interessantes...