por que ainda temos TUPLES?

Feb 24 2023
Comecei a trabalhar com Python há 3 anos, enquanto realizava um estudo abrangente de vários materiais do curso, incluindo tipos de dados, tipos de classe e muito mais, parei para refletir sobre o propósito e o significado das tuplas, levando-me a aprofundar o pensamento por que é mesmo uma coisa? Para ser sincero, quase não usei tuplas em meus projetos e nunca percebi que poderia ter um caso usado melhor do que listas (que faz praticamente a mesma coisa). caso de uso para ele ATÉ AGORA!! Me deparei com um vídeo de um dos meus canais favoritos do Youtube, NetworkChuck (certifique-se de se inscrever, ele é incrível ❤️) no Tuples. Ele tinha a mesma pergunta que eu ou talvez meu subconsciente.

Comecei a trabalhar com Python há 3 anos, enquanto realizava um estudo abrangente de vários materiais do curso, incluindo tipos de dados, tipos de classe e muito mais. é mesmo uma coisa?

Para ser sincero, quase não usei tuplas em meus projetos e nunca percebi que poderia ter um caso usado melhor do que listas (que faz praticamente a mesma coisa). caso de uso para isso

ATÉ AGORA!!

Me deparei com um vídeo de um dos meus canais favoritos do Youtube, NetworkChuck (certifique-se de se inscrever, ele é incrível ❤️) no Tuples. Ele tinha a mesma pergunta que eu ou talvez meu subconsciente. qual a necessidade de tuplas quando já temos listas?

Claro, sabemos que [ lista ] vai no colchete e ( tuplas ) vai no colchete, mas o que mais? Quer dizer, olhe para a imagem, podemos ter as strings e inteiros da mesma forma que na lista.

Imprimiu o tipo de ambos os tipos de dados

Como as tuplas são diferentes das listas?

Por que precisamos de tuplas?

Por que isso existe?

Vamos responder a todas as perguntas e colocar isso na cama!

Imutabilidade

Como Chuck disse, imutável é apenas uma palavra chique para imutável.

Imutável == não mutável

mutável == mutável

( TUPLES ) são significados imutáveis, você não pode alterar os dados dentro desses colchetes, por outro lado, [ LISTS ] são mutáveis ​​e os dados podem ser alterados nesses colchetes

Vamos tentar alterar o valor em uma lista, pois eles são MUTABLE

lists = ["Shivam", "Vasudeva",10]
lists = ["Shivam", "Vasudeva",10]
print("Before changing-- ",lists)
lists[2] = 14
print("After changing-- ", lists)
Before changing--  ['Shivam', 'Vasudeva', 10]
After changing--  ['Shivam', 'Vasudeva', 14]

tups = ("Shivam", "Vasudeva",10)
print("Before changing-- ",tups)
tups[2] = 14
print("After changing-- ",tups)

Agora a pergunta é como isso ajuda? Como isso torna nosso código melhor?

Ter um recurso a menos que LIST torna as TUPLES melhores? Como isso faz sentido?

Velocidade ️

O fato de as tuplas serem imutáveis ​​as torna mais rápidas que as listas.

Chuck, em seu vídeo, fez um pequeno teste para ver a velocidade das tuplas. Ele executou um pequeno código em tuplas e listas para capturar o tempo gasto por ambos os tipos de dados para fornecer os resultados

import timeit
#SPEED TEST
#Lists
print("List = ",timeit.timeit(stmt= '["Toronto", "Calgary","Montreal", "Vancouver", 647, 416, 437]', number=100000000))

#tuples 
print("Tuples = ",timeit.timeit(stmt= '("Toronto", "Calgary","Montreal", "Vancouver", 647, 416, 437)', number=100000000))

A lista levou 10 vezes mais do que TUPLES. Não é INSANO?

Esse tipo de velocidade não importa em pequena escala, mas para cálculos altos em que a velocidade é um fator importante, uma tupla pode fazer uma grande diferença.

Bem, há uma explicação simples para essa diferença de velocidade.

As listas são mutáveis , podemos alterá-las e pelo mesmo motivo elas são armazenadas em 2 blocos de memória enquanto as TUPLES são armazenadas em apenas 1 bloco de memória por causa de sua IMUTABILIDADE

Tudo parece chique, mas você ainda pode não estar convencido de por que PRECISAMOS usar tuplas‼️

Tipo de dados

De acordo com o Stack Overflow, embora [ listas ] possam ter diferentes tipos de dados em uma lista, isso não é considerado uma boa prática.

O uso correto de Listas é ter um tipo de dados HOMOGÊNEO , ou seja, uma lista deve ter o mesmo tipo de dados.

#List Homogenous data
["Toronto", "Calgary", "Montreal", "Vancouver"]
#String is the only datatype

#Heterogeneous Data 
[("Toronto", 647, "Dundas"), ("Calgary", 587, "Ravenstern")]
#String and integers

Você nem precisa ( ) para fazer uma tupla. Parece estúpido, certo? Veja o código abaixo, não coloquei colchetes e imprimi o tipo de classe a que pertence.

canada = "Toronto", "Calgary","Montreal"
print(type(canada))

      
                
Result of executing of code above

canada = "Toronto",
print(type(canada))

Deixe-me saber nos comentários se você sabia disso ou se conhece mais coisas estranhas que as tuplas podem fazer.

Continue aprendendo!!