Sobre função zip
Como afirmado anteriormente, a função "zip" é usada para criar pares de elementos de múltiplos objetos iteráveis. Considere o exemplo abaixo para entender a sintaxe básica e o uso da função ZIP:
LIST1 = ["A", "B", "C"]As duas primeiras declarações na amostra de código acima definem duas listas contendo alguns elementos. Em seguida, a função "ZIP" é usada pela passagem "List1" e "List2" Variáveis como argumentos. Esta é a principal sintaxe da função "zip". Você só precisa passar listas ou outros iteáveis ordenados válidos como argumentos cujos elementos você deseja combinar. Por fim, a declaração de impressão é usada para obter a saída da variável "zíper". Depois de executar a amostra de código mencionada acima, você deve obter a seguinte saída:
[('A', 'Apple'), ('B', 'Ball'), ('C', 'Cat')]Observe que a função "ZIP" retorna um objeto do tipo "zip" e não uma lista. Você precisa convertê -lo em um tipo iterável, conforme mostrado na declaração de impressão acima.
Em termos simples, a função “zip” pega elementos do mesmo índice de duas listas e os combina como um par em uma tupla. Portanto, o 0º elemento de "List1" é combinado com o 0º elemento de "List2", o 1º elemento de "List1" é combinado com o 1º elemento de "List2" e assim por diante. A função ZIP se move da esquerda para a direita e a tupla que contém elementos emparelhados tem o mesmo índice que os elementos armazenados neles.
Usando ZIP quando os iteráveis não têm o mesmo número de elementos
No exemplo declarado acima, ambas as listas têm o número igual de elementos. Caso você esteja lidando com algum código em que ambas as listas não têm o mesmo número de elementos, a função "ZIP" será interrompida no último elemento da lista com o menor número de elementos.
No exemplo abaixo, a função "zip" parará no elemento "C", independentemente da "Lista2" ter mais um elemento.
LIST1 = ["A", "B", "C"]Depois de executar a amostra de código mencionada acima, você deve obter a seguinte saída:
[('A', 'Apple'), ('B', 'Ball'), ('C', 'Cat')]Você pode usar mais de dois iteáveis ao usar a função zip
Geralmente, a função "zip" é usada para comparar dois objetos iteráveis. No entanto, você pode passar qualquer número de iteráveis como argumentos para a função "zip". O princípio de parar no último elemento da lista mais curta ainda será aplicável.
LIST1 = ["A", "B", "C"]Depois de executar a amostra de código mencionada acima, você deve obter a seguinte saída como resultado:
[('A', 'Apple', '5'), ('B', 'Ball', '3')]]Criando listas individuais de um objeto do tipo zip
Se você já possui um objeto "zip", pode usá -lo para repovoar listas individuais que foram usadas anteriormente quando a função zip foi chamada pela primeira vez.
LIST1 = ["A", "B", "C"]Depois de executar a amostra de código mencionada acima, você deve obter a seguinte saída como resultado:
['A', 'B'] ['Apple', 'Ball'] ['5', '3']Na amostra de código acima, o objeto "ZIP" é deflatado usando o operador "*". Os resultados esgotados são então alimentados em outra chamada para função zip que cria listas originais. Observe que você pode não obter todos os elementos de volta nas listas originais se as listas de comprimento desigual foram usadas quando o objeto "zip" foi criado pela primeira vez.
Usando ZIP quando você deseja manter os elementos de mais iteração mais longa
Em vários exemplos acima, você pode ter observado que a função "ZIP" por padrão parada no último elemento do mais curto iterável. E se você quiser que continue iterando até chegar ao último elemento do mais longo iterável?
Nesse caso, você terá que usar o método "zip_longest ()" do módulo "itterols" de Python. Funciona da mesma forma que a função "ZIP", com uma pequena diferença que ele para no último elemento do tipo mais longo.
De ITERTOOLS IMPORT ZIP_LONGESTDepois de executar a amostra de código mencionada acima, você deve obter a seguinte saída como resultado:
[('A', 'Apple', '5'), ('B', 'Ball', '3'), ('C', 'Cat', Nenhum), (Nenhum, 'Doll', Nenhum) ]Os valores ausentes são preenchidos como objetos do tipo "nenhum". Você também pode fornecer seu próprio valor para preencher, passando um argumento extra "FillValue" para o método "zip_longest".
De ITERTOOLS IMPORT ZIP_LONGESTDepois de executar a amostra de código mencionada acima, você deve obter a seguinte saída como resultado:
[(('a', 'maçã', '5'), ('b', 'ball', '3'), ('c', 'gat', 'my_value'), ('my_value', 'boneca ',' my_value ')]Conclusão
A função ZIP pode ser emulada usando algumas declarações de loops e condições. No entanto, ajuda a manter o código organizado e mais limpo, removendo verbosidade desnecessária e declarações repetitivas.