6 pessoas já começaram a estudar hoje
66pessoasjá começaram a estudar hoje
já começaram a estudar hoje

Enquanto você avalia,

66pessoas já começaram a estudar hoje

Dê o próximo passo e inicie sua carreira

Dê o próximo passo e inicie sua carreira agora mesmo

Comece agora
  • Home

    Escolha seu Plano

    • Plus 2430% OFF
    • Pro 2430% OFF
    • Ultra Lab 2430% OFF

    Carreiras Alura

    Evolua com profundidade técnica, direção clara e aplicação prática.

    Jornadas guiadas do básico ao avançado com checkpoints práticos, desenhadas para quem busca profundidade e protagonismo técnico.

    Iniciante

    Comece do zero com uma trilha clara e progressiva.

    Fundamentos práticos para dar os primeiros passos com segurança e construir uma base sólida.

    Intermediário

    Continue sua evolução com cursos que conectam fundamentos, ferramentas e prática profissional. Ganhe autonomia, e avance para projetos mais completos.

    Avançado

    Aprofunde temas técnicos e estratégicos para enfrentar desafios mais complexos. Explore boas práticas, arquitetura, performance com visão profissional.

    Cursos

    Ver mais cursos de Back-end
    • Pensamento computacional: fundamentos da computação e lógica de programação
    • Lógica de programação: mergulhe em programação com JavaScript
    • DDD: fundamentos do design orientado a domínio
    • ASP.NET: autenticação e autorização em APIs e aplicações web
    • Microsserviços: migração de monólitos e modularização

    Cursos

    Ver mais cursos de Dados
    • Python para Dados: primeiros passos
    • Excel: domine o editor de planilhas
    • Engenharia de Dados: Orquestração de Pipelines com Apache Airflow
    • Power BI Desktop: construindo meu primeiro dashboard
    • Governança e Arquitetura de Dados

    Cursos

    Ver mais cursos de Inteligência Artificial
    • IA: Explorando o Potencial da Inteligência Artificial Generativa
    • Engenharia de Prompt: Criando Prompts Eficazes para IA Generativa
    • Claude para Análise de Dados: prompts, integrações e automações
    • Agno: criando agentes e sistemas multiagente
    • Engenharia de software na era da IA: segurança de aplicações com agentes, MCPs e código gerado por IA

    Cursos

    Ver mais cursos de Front-end
    • HTML e CSS: ambiente, estrutura e estilo
    • React: realizando testes avançados com Jest e Testing Library
    • React: integrando TypeScript em projetos
    • JavaScript: aprendendo a programar
    • React: aplicando arquiteturas de Micro frontends

    Cursos

    Ver mais cursos de DevOps
    • Sistema Operacional Linux: fundamentos e administração prática
    • Containers e Docker: empacotamento, isolamento e gestão
    • Redes: dos conceitos iniciais à criação de uma intranet
    • Linux: gerenciando diretórios, arquivos, permissões e processos
    • Cibersegurança: Fundamentos e práticas integradas

    Cursos

    Ver mais cursos de UX & Design
    • UX Research: mapeando a experiência da pessoa usuária
    • UX/UI Design: Entregando produtos digitais com IA
    • UI Design: Prototipação e animações interativas
    • Figma: Conhecendo o programa
    • Product Design: métricas e ciclo de vida do produto

    Cursos

    Ver mais cursos de Inovação e Gestão
    • Canva: Criação de landing pages e e-mail marketing
    • Agilidade: como ela pode ajudar a criar um time de alta performance
    • Google Analytics 4: Extrair insights e configurar eventos
    • Management 3.0: gerencie o ambiente, não as pessoas
    • Automação de processos com n8n: Inteligência de dados para Marketing

    Cursos

    Ver mais cursos de Mobile
    • React Native: Estilização e Layouts com Flexbox e StyleSheet
    • Flutter: Graphql e suporte offline
    • Android com Gemini: Trabalhando com textos e imagens na IA
    • Dart: trabalhando com orientação a objetos
    • React Native: Dominando Listas com FlatList e ScrollView

    Carreiras

    Ver mais carreiras
    • Especialista em IA
    • Engenharia de IA
    • Ai native software engineering
    • Arquitetura de Soluções com IA
    • AI Product Design
    • Engenharia de Machine Learning
    • Desenvolvimento Front-End React
    • Engenharia de Dados
    • Cloud Security
    • Social Media Marketing
    • Engenharia de Agentes de IA

    Cursos

    • Engenharia de Prompt: Prompts Eficazes para IA Generativa
    • Claude Code: Criando sua Primeira Aplicação
    • Python: Crie sua Primeira Aplicação
    • Git e GitHub: Compartilhando e Colaborando
    • N8N: Fluxos de Trabalho Avançados

    Cursos

    • Copilot Studio: Solução Multiagentes
    • Padrões de API HTTP e Modelagem de APIs
    • Python para Análise de Dados com SQL
    • Docker: Criando e Gerenciando Containers
    • Design com IA: Otimizando o Processo Criativo

    Cursos

    • Model Context Protocol (MCP)
    • Spec-Driven Development: Dev Assistido por Agentes
    • Arquitetura de Sistemas Distribuídos com Java
    • Governança de Modelos e Reprodutibilidade
    • Pentest: Vulnerabilidades em Aplicações Web

    Escolha seu Plano

    • Plus 2430% OFF
    • Pro 2430% OFF
    • Ultra Lab 2430% OFF

    Skills & Go

    O Skills & Go é para Tech Leads, Product Managers, estrategistas e early adopters que transformam ideias em soluções de alto impacto. Em cursos ao vivo e 100% online, você domina a nova era da IA em tempo real.

    Aulas ao vivo

    Saiba mais
    • Agentic Engineering: orquestre múltiplos agentes com confiabilidade
    • Building AI Products: transforme ideias em produtos reais com IA
    • AI Data Strategy: transforme dados em decisões estratégicas com IA

    Escolha seu Plano

    • Plus 2430% OFF
    • Pro 2430% OFF
    • Ultra Lab 2430% OFF

    Eventos Alura

    Nossos eventos são pensados para quem quer estar à frente das mudanças em tecnologia, IA e inovação. Em experiências presenciais, você acompanha tendências e se conecta com especialistas que estão moldando o futuro.

    Próximos eventos

    • Imersão Engenharia de Dados com IA
    • IA Conference
    • Alura Signals
  • Talent Lab
  • IA

    Escolha seu Plano

    • Plus 2430% OFF
    • Pro 2430% OFF
    • Ultra Lab 2430% OFF

    Conteúdos gratuitos

    Explore conteúdos gratuitos para aprender tecnologia no seu ritmo. Encontre artigos com conteúdos técnicos para aprender na prática, notícias para acompanhar as principais tendências do mercado e o Alura Labs, com análises e reflexões de especialistas sobre tecnologia, IA e carreira.

    Conteúdos gratuitos

    • Artigos
    • Notícias
    • Alura Labs
  • Para Empresas
Ver planos
Links principais
  • Planos e Promoções
  • Carreiras

    Ver todas
    • Especialista em IA
    • Engenharia de IA
    • Ai native software engineering
    • Arquitetura de Soluções com IA
    • AI Product Design
    • Engenharia de Machine Learning
    • Desenvolvimento Front-End React
    • Engenharia de Dados
    • Cloud Security
    • Social Media Marketing
    • Engenharia de Agentes de IA
    Entrar Ver Planos
  • Área de Interesse

    Entrar Ver Planos
  • Aulas ao Vivo - Skills & Go

    • Agentic Engineering: orquestre múltiplos agentes com confiabilidade
    • Building AI Products: transforme ideias em produtos reais com IA
    • AI Data Strategy: transforme dados em decisões estratégicas com IA
    Entrar Ver Planos
  • Senioridade

    Entrar Ver Planos
  • Eventos Alura

    • Imersão Engenharia de Dados com IA
    • IA Conference
    • Alura Signals
    Entrar Ver Planos
  • Conteúdos

    • Artigos
    • Notícias
    • Alura Labs
    Entrar Ver Planos
  • Links complementares do menu mobile
  • Talent lab
  • Inteligência Artificial
  • Pós Graduações
  • Para Empresas
  • Sobre a Alura
  • Grupo Alun
  • Entrar
    • Home
    • Carreiras
    • Skills & Go
    • Talent Lab
    • Inteligência Artificial
    • Pós Graduações
    • Artigos
    • Sobre a Alura
    • Grupo Alun
    LoginContato
    • Plano Pro 24
    • Plano Plus 24
    • Plano Ultra Lab 24
    • LinkedIn
    • Instagram
    • YouTube
    1. Página inicial
    2. Back-end
    3. Tupla no Python: o que é, como criar e manipular e suas diferenças com as Listas

    Tupla no Python: o que é, como criar e manipular e suas diferenças com as Listas

    7 min7 minutos de leitura

    7 min7 minutos de leitura

    Publicado: 19/09/2018

    Última atualização: 2 de Março

    1. Exemplo prático
    2. O que é Tupla? Como manipular?
    3. Qual a diferença entre listas e tuplas?
    4. Criando tuplas nomeadas com a função namedtuple()
    5. Conclusão

    Afinal, qual a diferença entre as tuplas e as listas na linguagem Python? Veja quando utilizar uma e outra e perca essa grande dúvida!

    Exemplo prático

    Estou trabalhando em uma aplicação de mapeamento que se baseia em coordenadas geográficas para localizar endereços. Mas como posso armazenar estas coordenadas?

    Uma ideia é termos uma variável para latitude e uma para longitude, mais ou menos dessa forma:

    
    latitude = -23.588254
    longitude = -46.632477
    

    Por enquanto tudo bem. Mas quero trabalhar com rotas e distâncias, então preciso de mais de uma coordenada. E aí, como fazemos? Temos que criar outras variáveis de latitude e longitude?

    
    latitude = -23.588254
    longitude = -46.632477
    outra_latitude = 48.8583698
    outra_longitude = 2.2944833
    

    Bem… isso já está ficando estranho, não é? À medida que a quantidade de coordenadas vai crescendo, nosso código está ficando mais confuso e nos dando mais propensão a erros.

    O ideal seria não deixar latitude e longitude separados, mas juntos em uma variável só, realmente organizados como uma coordenada. Quando queremos guardar juntos mais de um valor no Python, a primeira coisa que vem à mente são… as listas! Vamos usá-las, então:

    
    caelum_coordenadas = [-23.588254, -46.632477]
    torre_eiffel_coordenadas = [48.8583698, 2.2944833]
    

    Agora já melhorou bastante, temos as nossas duas coordenadas separadas e organizadas! Mas será que uma lista é o melhor tipo para o que queremos fazer no Python?

    Os problemas do uso da lista para esses casos

    Listas no Python são incrivelmente poderosas e úteis, mas será que são o ideal no nosso caso? Em primeiro lugar, podemos pensar no que pode ser problemático na prática, como a mutabilidade das listas.

    Já sabemos que listas são mutáveis, ou seja, que os valores de um mesmo objeto lista podem ser alterados. O que aconteceria, então, se alguém adicionasse um valor em caelum_coordenadas com o método append() ou ainda removesse um com o remove(). Essa variável não teria mais sentido nenhum!

    Pior seria se alguém simplesmente mudasse um dos valores, fazendo por exemplo isso:

    
    caelum_coordenadas = [-23.588254, -46.632477]
    caelum_coordenadas[1] = -5.0
    

    caelum_coordenadas agora apontaria para uma coordenada sem relação nenhuma com o que era pra ter o endereço da Caelum São Paulo. Agora, na verdade, aponta para o meio do Oceano Atlântico! Isso não faz sentido nenhum pra nós…

    Além dessa questão prática, temos um grave problema de semântica. Usamos uma lista para representar a coordenada, certo? Mas se é uma lista, é uma lista de quê? Afinal,são dois valores diferente - latitude e longitude.

    A própria documentação do Python indica que os elementos de uma lista são, geralmente, homogêneos. Ou seja, têm o mesmo tipo e significado. Com as nossas coordenadas, temos valores heterogêneos, pois representam duas coisas diferentes (para então formar uma só).

    Além disso, direto de uma definição de lista no dicionário: uma relação ordenada de coisas relacionadas. Repare que o que queremos não é ordem, mas estrutura a relação não é de que latitude vem primeiro que longitude, mas que latitude está na primeira posição, enquanto longitude na segunda.

    O que além da lista poderia ser usado para satisfazer melhor nossa necessidade? A Tupla!

    Banner promocional da Alura destacando até 30% de desconto e mais 1 mês grátis para quem quer investir na carreira e acelerar sua evolução profissional. A oferta é por tempo limitado, com matrícula disponível até 24 de agosto e chamada para aproveitar a oportunidade de estudar na Alura.

    O que é Tupla? Como manipular?

    O Python nos disponibiliza um tipo que preenche muito melhor as características que procurávamos — as tuplas. Tuplas podem ser consideradas similares às listas, mas suas diferenças são cruciais.

    Quanto à sintaxe, a tupla se diferencia por substituir os colchetes ([]) das listas por parênteses (()):

    
    caelum_coordenadas = (-23.588254, -46.632477)
    print(type(caelum_coordenadas))
    

    Só para checar o tipo:

    
    <class 'tuple'>
    

    Em primeiro lugar, a diferença mais explícita pela própria comunidade Python é que tuplas são imutáveis. Isso significa que não podemos alterar um mesmo objeto tupla, ou seja, mudar uma de suas referências internas (seus valores), nem adicionar ou remover elemento algum:

    Testes com a tupla

    Ainda assim, podemos criar um novo objeto tupla com o operador de soma (+):

    Soma com a tupla

    Para uma tupla de valor único, devemos sempre colocar uma vírgula (,) no final do valor, mesmo com os parênteses, ou o Python não interpretará como tupla.

    Outro ponto importante e que pode gerar confusão a respeito dessa imutabilidade é que tuplas podem conter objetos mutáveis, como listas:

    Tuplas podem conter objetos mutáveis

    "Ué, mas nós alteramos um valor de nossa tupla sem mudar de objeto! Isso significa que ela não é imutável?"

    Não, porque na verdade não alteramos nada na tupla, já que as referências que ela guarda são as mesmas! Modificamos a lista dentro dela, de novo, sem mudar o identificador, e assim isso foi permitido.

    Além disso, qual a diferença entre as tuplas e as listas? Para muitos desenvolvedores, aparentemente acaba aí, como se tuplas fossem apenas listas constantes, imutáveis. Isso, entretanto, não é bem verdade.

    Qual a diferença entre listas e tuplas?

    De fato, tecnicamente as diferenças mais claras são essas - tuplas se comportam como listas estáticas. Assim, ainda podemos deduzir (e confirmar) que, por conta disso, tuplas ocupam menos espaço na memória comparadas a listas:

    Tupla e lista na memória do computador

    Mas e além disso?

    Quando tocamos nos problemas das listas, falamos sobre a semântica, isto é, o que dá sentido ao nosso código. Verificamos que uma lista realmente não era ideal para nosso caso, como a própria documentação do Python especificava.

    Da mesma forma, a documentação ainda nos apresenta um sentido para as tuplas, indicando que elas geralmente contêm uma sequência heterogênea de elementos, ou seja, elementos de diversos tipos e significados.

    Como já vimos, listas, por outro lado, são mais próprias para armazenamento de valores de mesmo significado, isto é, homogêneos. Isso não significa que uma lista não possa armazenar valores de diferentes tipos, mas que esse é comumente o sentido dado a ela.

    Enfim, listas geralmente trabalham com ordem, enquanto tuplas geralmente trabalham com estrutura. O primeiro elemento de nossa tupla caelum_coordenadas é a latitude, e o segundo é a longitude - a posição não pode ser invertida, porque elas dão sentido para os valores.

    Pensando que as tuplas trabalham com estrutura, e se nós pudéssemos especificar o que cada valor significa? Isto é, dar um nome para cada posição. Será que podemos fazer isso?

    Criando tuplas nomeadas com a função namedtuple()

    Já que as tuplas se baseiam na estrutura dos nosso dados, seria interessante poder nomeá-los. Pensando nisso, no Python, já existe uma maneira para implementarmos nossas tuplas com campos nomeados - com a função namedtuple(), localizada no módulo collections da biblioteca padrão da linguagem..

    A função namedtuple() é, na verdade, uma fábrica de tuplas nomeadas. Isto é, ela nos retorna um objeto de uma subclasse de tupla que, além de darem acesso aos elementos pelo índice, nos permitem dar significado nomeado para cada um deles e acessá-los dessa forma:

    Tupla nomeada

    Assim temos a tupla com mais alguns benefícios de legibilidade!

    Uma alternativa às tuplas nomeadas poderia ser usar dicionários, que são outro tipo nativo do Python que nos permite mapeamento de objetos, como você pode ver na documentação da linguagem ;).

    Conclusão

    Listas e tuplas são algumas estruturas de dados muito utilizadas quando estamos programando. Essas duas estruturas nos permitem guardar nossos dados agrupados, contudo suas semelhanças se encerram por aí, como pudemos ver nesse post.

    Conseguimos desmistificar a ideia de que a tupla é apenas uma lista imutável, e entendemos como as listas têm uma função semântica diferente das tuplas.

    Listas (saiba mais sobre listas no Python) são usadas para guardar dados de mesmo tipo e significado, de modo que a ordem pode fazer diferença.

    Já as tuplas, além de serem imutáveis, têm uma semântica muito mais estrutural, armazenando dados heterogêneos. Isto é, a posição do dado pode alterar o seu significado.

    Também conhecemos um outro tipo que pode nos auxiliar com o bom uso da tupla - a tupla nomeada, gerada pela função namedtuple(). Com ela, podemos dar um nome para cada elemento da nossa tupla.

    E aí? Gostou de entender mais sobre esse tipo no Python? Se quiser aprender mais sobre a linguagem, dê uma olhada em nossos cursos de Python na Alura e continue estudando!

    Enquanto você pensa, a próxima geração tech já está evoluindo. Planos com até 30% OFF. Ver planos.
    Banner promocional da Alura destacando até 30% de desconto e mais 1 mês grátis para quem quer investir na carreira e acelerar sua evolução profissional. A oferta é por tempo limitado, com matrícula disponível até 24 de agosto e chamada para aproveitar a oportunidade de estudar na Alura.

    Avalie este artigo

    • Foto de Yan Orestes

      Autor(a)

      Yan Orestes

    Explore por tópico

    • Mobile
    • Back-end
    • Front-end
    • DevOps
    • UX & Design
    • Dados
    • Gestão & Negócios
    • Inteligência Artificial
    • Cibersegurança
    • Cloud

    Leia também

    • 04/07/2024

      Dominando o Code Interpreter da OpenAI: um guia rápido

      Ler mais
    • Alura
      11/04/2018

      Python: A diferença das funções input() e raw_input()

      Ler mais
    • 17/01/2024

      Serializer: o que é e como funciona no Django Rest Framework

      Ler mais
    Ver mais conteúdos

    Inscreva-se em nossa Newsletter

    Fique por dentro de conteúdos, insights e oportunidades do universo tech. Receba novidades e lançamentos direto no seu e-mail.

    Institucional

    • Sobre nós
    • Trabalhe Conosco
    • Para Empresas
    • Para Escolas
    • Política de Privacidade
    • Compromisso de Integridade
    • Termos de Uso
    • Canal de Ética
    • Código de Ética
    • Fale Conosco
    • Documentos Institucionais
    • Status
    Institucional
    • Sobre nós
    • Trabalhe Conosco
    • Para Empresas
    • Para Escolas
    • Política de Privacidade
    • Compromisso de Integridade
    • Termos de Uso
    • Canal de Ética
    • Código de Ética
    • Fale Conosco
    • Documentos Institucionais
    • Status

    A Alura

    • Como Funciona
    • Inteligência Artificial
    • Plataforma
    • Depoimentos
    • Instrutores(as)
    • Dev em <T>
    • Luri, a Inteligência Artificial da Alura
    • IA Conference
    • Cursos Imersivos
    • Perguntas Frequentes
    A Alura
    • Como Funciona
    • Inteligência Artificial
    • Plataforma
    • Depoimentos
    • Instrutores(as)
    • Dev em <T>
    • Luri, a Inteligência Artificial da Alura
    • IA Conference
    • Cursos Imersivos
    • Perguntas Frequentes

    Conteúdos

    • Alura Cases
    • Imersão Engenharia de Dados com IA
    • Artigos
    • Podcasts
    • Artigos de educação corporativa
    Conteúdos
    • Alura Cases
    • Imersão Engenharia de Dados com IA
    • Artigos
    • Podcasts
    • Artigos de educação corporativa
    Uma Empresa do GrupoLogo Grupo Alun

    Outras empresas do Grupo Alun

    • FIAP
    • STARTSE
    • PM3
    • LUMINA

    Ao submeter seu e-mail, você concorda com a política de privacidade da Alura.

    Redes Sociais & Apps

    instagram
    youtube
    tiktok
    x
    appStore
    googlePlay
    Uma Empresa do GrupoLogo Grupo Alun

    Outras empresas do Grupo Alun

    • FIAP
    • STARTSE
    • PM3
    • LUMINA

    Ao submeter seu e-mail, você concorda com a política de privacidade da Alura.

    Redes Sociais & Apps

    instagram
    youtube
    tiktok
    x
    appStore
    googlePlay
    Alura