Ads Top

[Aprenda Python] - Conheça as quatro estruturas de dados integradas

Python vem com quatro estruturas de dados integradas(bult-in) que você pode usar para manter qualquer coleção de objetos, e eles são lista(list), tupla(tuple), dicionário(dictionary) e conjunto(set).


Observe que por "embutido" queremos dizer que listas, tuplas, dicionários e conjuntos são sempre disponíveis para o seu código e eles não precisam ser importados antes do uso: cada um deles as estruturas de dados fazem parte da linguagem.


Nas próximas páginas, apresentamos uma visão geral de todos os quatro desses dados integrados estruturas. Você pode ficar tentado a pular esta visão geral, mas não o faça.


Se você acha que tem uma boa ideia do que é uma lista, pense novamente. Lista de Python é mais semelhante ao que você pode pensar como uma matriz, em oposição a uma lista vinculada,  que é o que geralmente vem à mente quando os programadores ouvem a palavra "lista". (Se você tem a sorte de não saber o que é uma lista vinculada, relaxe e seja grato).


A lista Python é a primeira de duas estruturas de dados de coleta ordenada:


Lista: uma coleção ordenada de objetos mutáveis


  • Uma lista em Python é muito semelhante à noção de uma matriz em outro linguagens de programação, em que você pode pensar em uma lista como sendo um índice coleção de objetos relacionados, com cada slot na lista numerado de zero para cima.
  • Ao contrário de arrays em muitas outras linguagens de programação, no entanto, as listas são dinâmicos em Python, pois podem crescer (e diminuir) sob demanda. Lá não é necessário declarar previamente o tamanho de uma lista antes de usá-la para armazenar quaisquer objetos.
  • As listas também são heterogêneas, no sentido de que você não precisa pré-declarar o tipo do objeto que você está armazenando - você pode misturar objetos de diferentes tipos em uma lista, se desejar.
  • As listas são mutáveis, pois você pode alterar uma lista a qualquer momento adicionando, remover ou alterar objetos.





As coleções ordenadas são mutáveis/imutáveis


Lista em Python é um exemplo de estrutura de dados mutável, em que pode mudar (ou mutate) em tempo de execução. Você pode aumentar e diminuir uma lista, adicionando e removendo objetos como necessário. Também é possível alterar qualquer objeto armazenado em qualquer slot. Teremos muito  mais para dizer sobre as listas dentro de algumas páginas.


Quando uma coleção do tipo lista ordenada é imutável (ou seja, não pode mudar), é chamada de tupla(tuple):


Tupla: uma coleção ordenada de objetos imutáveis


Uma tupla é uma lista imutável. Isso significa que, uma vez que você atribui objetos a uma tupla, a tupla não pode ser alterada em nenhuma circunstância.

Muitas vezes é útil pensar em uma tupla como uma lista constante.

A maioria dos novos programadores Python coçam a cabeça em confusão quando eles tuplas de primeiro encontro, pois pode ser difícil descobrir seu propósito. Depois de tudo, para que serve uma lista que não pode mudar? Acontece que há muito uso casos em que você deseja garantir que seus objetos não possam ser alterados por seu (ou código de outra pessoa). 

Listas e tuplas são ótimas quando você deseja apresentar dados de uma forma ordenada (como um lista de destinos em um itinerário de viagem, em que a ordem dos destinos é importante). Mas às vezes a ordem em que você apresenta os dados não é importante. Por exemplo, você pode querer armazenar alguns detalhes do usuário (como seu id e senha), mas você pode não se importar em que ordem eles são armazenados (apenas que estão). Com dados como este, um alternativa à lista/tupla do Python é necessária.


Uma estrutura de dados não ordenados: dicionário

Se manter seus dados em uma ordem específica não é importante para você, mas estruturar é, Python vem com uma escolha de duas estruturas de dados não ordenadas: dictionary e set. Vejamos um de cada vez, começando com o dicionário de Python.


Dicionário: um conjunto não ordenado de pares chave/valor


Dependendo da sua experiência em programação, você já deve saber o que dicionário é, mas você pode conhecê-lo por outro nome, como matriz associativa, mapa, tabela de símbolos ou hash.

Como aquelas outras estruturas de dados nessas outras linguagens, o dicionário do Python permite que você armazene uma coleção de pares de chave/valor. Cada chave única possui um valor associado a ele no dicionário, e os dicionários podem ter qualquer número de pares. Os valores associados a uma chave podem ser qualquer objeto.

Os dicionários são desordenados e mutáveis. Pode ser útil pensar em Python dicionário como uma estrutura de dados multirow de duas colunas. Como listas, dicionários pode aumentar (e diminuir) sob demanda.




Uma estrutura de dados que evita duplicatas: Conjunto (set)


A estrutura de dados embutida final é o conjunto(set), que é ótimo ter à mão quando você quiser para remover duplicatas rapidamente de qualquer outra coleção. E não se preocupe se a menção de conjuntos faz você relembrar a aula de matemática do ensino médio e começar a suar frio. A implementação de conjuntos em Python pode ser usada em muitos lugares.


Set: um conjunto não ordenado de objetos únicos


Em Python, um conjunto é uma estrutura de dados útil para lembrar uma coleção de objetos relacionados, garantindo que nenhum dos objetos seja duplicado. O fato de que os conjuntos permitem realizar uniões, cruzamentos e diferenças é um bônus adicional (especialmente se você for do tipo matemático que adora a teoria dos conjuntos).


Conjuntos, como listas e dicionários, podem aumentar (e diminuir) conforme necessário. Como dicionários, conjuntos são desordenados, então você não pode fazer suposições sobre a ordem do
objetos em seu conjunto.




As quatro estruturas de dados integradas são úteis, mas não cobrem todos os dados possíveis necessidade. No entanto, eles cobrem muitos deles. É sempre a mesma história com tecnologias projetadas para ser útil em geral: cerca de 80% do que você precisa fazer é coberto, enquanto a outra parte, altamente específica, 20% exige que você tenha mais trabalho.


Nenhum comentário:

Tecnologia do Blogger.