{"id":37120,"date":"2025-02-04T17:41:11","date_gmt":"2025-02-04T20:41:11","guid":{"rendered":"https:\/\/www.locaweb.com.br\/ajuda\/?post_type=ht_kb&#038;p=37120"},"modified":"2025-02-04T17:41:11","modified_gmt":"2025-02-04T20:41:11","slug":"python-zip","status":"publish","type":"ht_kb","link":"https:\/\/www.locaweb.com.br\/ajuda\/wiki\/python-zip\/","title":{"rendered":"Como usar a fun\u00e7\u00e3o zip() no Python?"},"content":{"rendered":"<p>A fun\u00e7\u00e3o <strong>zip()<\/strong><strong> no Python<\/strong> pode ser usada para combinar elementos de duas ou mais listas. Esse recurso \u00e9 \u00fatil quando voc\u00ea precisa emparelhar dados correspondentes de diferentes conjuntos, como unir uma lista de nomes a uma lista de idades.<\/p>\n<p>O resultado desse processo pode ser convertido em uma lista de tuplas ou pares, o que facilita o trabalho com dados relacionados. Mesmo que as listas tenham tamanhos diferentes, o <em>zip()<\/em> combina os elementos at\u00e9 o menor n\u00famero de itens, o que evita erros.<\/p>\n<h2>Como usar zip() com listas?<\/h2>\n<p>O comando <em>zip()<\/em> no <a href=\"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/python\/\" target=\"_blank\" rel=\"noopener noreferrer\">Python<\/a> \u00e9<strong> \u00fatil para combinar listas<\/strong>. Ao usar o comando com dois ou mais conjuntos de dados, o recurso agrupa os elementos correspondentes de cada uma delas ao formar pares ou tuplas.<\/p>\n<p>Dessa forma, \u00e9 poss\u00edvel trabalhar com os dados de maneira organizada e pr\u00e1tica.<\/p>\n<h3>Combinar mais de duas listas com zip<\/h3>\n<p>O m\u00e9todo <em>zip()<\/em> n\u00e3o se limita a apenas duas listas, pois possibilita <strong>combinar quantos conjuntos quiser<\/strong>. Basta passar todas elas como argumento e a fun\u00e7\u00e3o criar\u00e1 tuplas com os elementos de cada lista em suas respectivas posi\u00e7\u00f5es.<\/p>\n<p>Confira o exemplo abaixo:<\/p>\n<pre><em>lista1 = [1, 2, 3]<\/em>\r\n\r\n<em>lista2 = ['a', 'b', 'c']<\/em>\r\n\r\n<em>lista3 = [True, False, True]<\/em>\r\n\r\n<em>resultado = zip(lista1, lista2, lista3)<\/em>\r\n\r\n<em>for item in resultado:<\/em>\r\n\r\n<em> print(item)<\/em>\r\n\r\n<em>Sa\u00edda:<\/em>\r\n\r\n<em>(1, 'a', True)<\/em>\r\n\r\n<em>(2, 'b', False)<\/em>\r\n\r\n<em>(3, 'c', True)<\/em><\/pre>\n<p>Nesse exemplo, <strong>tr\u00eas listas foram combinadas<\/strong>: <em>lista1<\/em>,<em> lista2<\/em> e<em> lista3<\/em>. A fun\u00e7\u00e3o<em> zip()<\/em> agrupa os elementos de cada conjunto com base em suas respectivas posi\u00e7\u00f5es ao formar tuplas.<\/p>\n<p>Se as listas manipuladas tiverem tamanhos diferentes, o<em> zip()<\/em> interrompe a combina\u00e7\u00e3o no menor tamanho.<\/p>\n<h3>Iterar sobre listas ao usar zip()<\/h3>\n<p>A fun\u00e7\u00e3o <em>zip()<\/em> tamb\u00e9m pode ser usada para iterar sobre v\u00e1rias listas ao mesmo tempo. A opera\u00e7\u00e3o <strong>permite processar dados de forma sincronizada<\/strong>, como para combinar uma lista de produtos com os seus respectivos pre\u00e7os.<\/p>\n<p>Veja uma simula\u00e7\u00e3o:<\/p>\n<pre><em>produtos = ['Arroz', 'Feij\u00e3o', 'Macarr\u00e3o']<\/em>\r\n\r\n<em>precos<\/em><em> = [5.99, 4.50, 3.75]<\/em>\r\n\r\n<em>for produto, preco in zip(produtos, <\/em><em>precos<\/em><em>):<\/em>\r\n\r\n<em>print(f<\/em><em>'{produto} custa R${<\/em><em>preco<\/em><em>:.2f}')<\/em><\/pre>\n<p>No exemplo acima, a sa\u00edda esperada seria:<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>Arroz custa R$ 5,99;<\/li>\n<li>Feij\u00e3o custa R$ 4,50;<\/li>\n<li>Macarr\u00e3o custa R$ 3,75.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Nesse caso, o comando <strong>combinou os itens das listas de produtos e pre\u00e7os<\/strong>, o que permitiu iterar sobre os pares diretamente dentro do la\u00e7o \u201cfor\u201d.<\/p>\n<h2>Criar dicion\u00e1rios com zip()<\/h2>\n<p>Voc\u00ea tamb\u00e9m pode recorrer \u00e0 fun\u00e7\u00e3o <em>zip()<\/em> para criar dicion\u00e1rios. Para isso, basta combinar duas listas, <strong>uma delas como a chave e a outra o valor correspondente<\/strong>.<\/p>\n<p>Veja um exemplo:<\/p>\n<pre><em>nomes = ['Alice', 'Bob', 'Carlos']<\/em>\r\n\r\n<em>idades = [25, 30, 35]<\/em>\r\n\r\n<em>dicionario<\/em><em> = <\/em><em>dict<\/em><em>(zip(nomes, idades))<\/em>\r\n\r\n<em>print(<\/em><em>dicionario<\/em><em>)<\/em>\r\n\r\n<em>Sa\u00edda: {'Alice': 25, 'Bob': 30, 'Carlos': 35}<\/em><\/pre>\n<p>Nessa situa\u00e7\u00e3o, <strong>os nomes s\u00e3o as chaves e as idades s\u00e3o os valores correspondentes<\/strong>.<\/p>\n<h2>Dicas avan\u00e7adas e usos da fun\u00e7\u00e3o zip()<\/h2>\n<p>Al\u00e9m das funcionalidades b\u00e1sicas da fun\u00e7\u00e3o<em> zip()<\/em> em Python, existem algumas t\u00e9cnicas mais avan\u00e7adas que podem ser \u00fateis, especialmente em situa\u00e7\u00f5es mais complexas ou quando \u00e9 necess\u00e1rio ter maior controle sobre o processo.<\/p>\n<p>Esse m\u00e9todo \u00e9 \u00fatil quando voc\u00ea <strong>lida com grande volume de informa\u00e7\u00f5es ou precisa processar dados em servidores remotos<\/strong>, como em <a href=\"https:\/\/www.locaweb.com.br\/servidor-vps\/\" target=\"_blank\" rel=\"noopener noreferrer\">VPS<\/a>.<\/p>\n<p>Al\u00e9m de combinar listas, o Python tamb\u00e9m oferece recursos para trabalhar diretamente com arquivos compactados.<\/p>\n<p>Por meio da biblioteca zipfile, \u00e9 poss\u00edvel <strong>criar e extrair arquivos comprimidos no formato ZIP<\/strong>. Isso significa que voc\u00ea pode utilizar o comando <em>python zip file<\/em> para gerar e gerenciar esses arquivos dentro dos seus projetos.<\/p>\n<h3>Combina\u00e7\u00e3o com itertools.zip_longest()<\/h3>\n<p>Para combinar listas de tamanhos diferentes sem que o <em>zip()<\/em> interrompa a combina\u00e7\u00e3o no menor conjunto, \u00e9 poss\u00edvel recorrer \u00e0 fun\u00e7\u00e3o <em>itertools.zip_longest<\/em><em>()<\/em>.<\/p>\n<p>O recurso<strong> permite que todos os elementos sejam combinados e preenche as lacunas com um valor padr\u00e3o<\/strong>, como <em>None<\/em>, para as listas que forem menores.<\/p>\n<p>Veja o exemplo:<\/p>\n<pre><em>from itertools import zip_longest<\/em>\r\n\r\n<em>lista1 = [1, 2, 3]<\/em>\r\n\r\n<em>lista2 = ['a', 'b']<\/em>\r\n\r\n<em>resultado = zip_longest(<\/em><em>lista1<\/em><em>, <\/em><em>lista2<\/em><em>, <\/em><em>fillvalue<\/em><em>=None)<\/em>\r\n\r\n<em>for item in resultado:<\/em>\r\n\r\n<em> print(item)<\/em>\r\n\r\n<em>Sa\u00edda:<\/em>\r\n\r\n<em>(1, 'a')<\/em>\r\n\r\n<em>(2, 'b')<\/em>\r\n\r\n<em>(3, None)<\/em>\r\n\r\nNesse exemplo, o comando <em>zip_longest<\/em><em>()<\/em> combina as duas listas, mesmo que tenham tamanhos diferentes. O terceiro valor de <em>lista1<\/em> foi emparelhado com <em>None<\/em>, j\u00e1 que <em>lista2<\/em> n\u00e3o possui um terceiro elemento.<\/pre>\n<h3>Usar zip() com enumerate()<\/h3>\n<p>Outra forma de usar o <em>zip()<\/em> \u00e9 combin\u00e1-lo \u00e0 fun\u00e7\u00e3o<em> enumerate()<\/em>. Isso permite que voc\u00ea obtenha n\u00e3o s\u00f3 os elementos emparelhados das listas, como <strong>o<\/strong> <strong>\u00edndice de cada item<\/strong>.<\/p>\n<p>Veja um exemplo a seguir:<\/p>\n<pre><em>produtos = ['Arroz', 'Feij\u00e3o', 'Macarr\u00e3o']<\/em>\r\n\r\n<em>precos<\/em><em> = [5.99, 4.50, 3.75]<\/em>\r\n\r\n<em>for index, (produto, preco) in enumerate(zip(produtos, <\/em><em>precos<\/em><em>)):<\/em>\r\n\r\n<em>print(f<\/em><em>'{index}: {produto} custa R${<\/em><em>preco<\/em><em>:.2f}')<\/em><\/pre>\n<p>Nesse caso, a sa\u00edda esperada seria:<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>0: Arroz custa R$ 5,99;<\/li>\n<li>1: Feij\u00e3o custa R$ 4,50;<\/li>\n<li>2: Macarr\u00e3o custa R$ 3,75.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>No exemplo anterior, o <em>zip()<\/em> foi utilizado para combinar a lista de produtos e pre\u00e7os e o <em>enumerate()<\/em> para obter o \u00edndice de cada combina\u00e7\u00e3o.<\/p>\n<p>Agora que voc\u00ea j\u00e1 sabe como <strong>usar a fun\u00e7\u00e3o zip em Python<\/strong>, pode combinar listas e manipular dados de forma mais eficiente nos seus projetos!<\/p>\n<p>Quer tornar o seu desenvolvimento ainda mais pr\u00e1tico? Confira mais dicas aqui no Portal Ajuda.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A fun\u00e7\u00e3o zip() no Python pode ser usada para combinar elementos de duas ou mais listas. Esse recurso \u00e9 \u00fatil quando voc\u00ea precisa emparelhar dados correspondentes de diferentes conjuntos, como unir uma lista de nomes a uma lista de idades. O resultado desse processo pode ser convertido em uma lista&#8230;<\/p>\n","protected":false},"author":50,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"footnotes":""},"ht-kb-category":[118],"ht-kb-tag":[],"class_list":["post-37120","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-vps-locaweb"],"_links":{"self":[{"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/ht-kb\/37120","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/ht-kb"}],"about":[{"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/users\/50"}],"replies":[{"embeddable":true,"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/comments?post=37120"}],"version-history":[{"count":1,"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/ht-kb\/37120\/revisions"}],"predecessor-version":[{"id":37121,"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/ht-kb\/37120\/revisions\/37121"}],"wp:attachment":[{"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/media?parent=37120"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/ht-kb-category?post=37120"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/ht-kb-tag?post=37120"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}