Aprenda os fundamentos do Python em 30 Dias — Dia 6 (Tuplas e Conjuntos)
Original: medium.com – devops-challenge
Tuplas
Tuplas em python são seqüências imutáveis de objetos arbitrários, uma vez criados eles não podem ser alterados (substituídos/removidos) e novos elementos não podem ser adicionados.
Similar à lista mas delimitado por parênteses ao invés de colchetes
>>> a = (1,2,3) >>> a (1, 2, 3) >>> type(a) <class 'tuple'>
Podemos acessar o elemento usando a indexação
>>> a[0] 1
Podemos usar len()
para encontrar o número de elementos
>>> len(a) 3
Podemos iterá-lo usando loop
>>> for i in a: ... print(i) ... 1 2 3
Concatenar usando o operador +
>>> a (1, 2, 3) >>> b = (4,5,6) a + b (1, 2, 3, 4, 5, 6)
Repetição pode ser feito usando o operador *
>>> a * 2 (1, 2, 3, 1, 2, 3)
Como mencionado acima tuplas são imutáveis, por isso se tentarmos alterá-lo, ele resultará um TypeError
>>> a[0]= 4 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'tuple' object does not support item assignment
Uma coisa a notar é que não podemos usar um objeto ** com um único elemento** dentro do parêntesis como uma tupla porque o Python o tratará como um inteiro
>>> b = (10) >>> type(b) <class 'int'>
Para uma tupla de um único elemento, devemos incluir uma vírgula à direita do elemento
>>> b = (10,) >>> type(b) <class 'tuple'>
Mas então como podemos especificar as tuplas vazias? Muito simples, para fazer isso basta usar parênteses vazios.
>>> c = () >>> type(c) <class 'tuple'>
As tuplas são úteis para retornar vários valores
>>> def minmax(ellist): ... return min(ellist), max(ellist) ... >>> a = [1,2,3,4,5,6] >>> minmax(a) (1, 6)
NOTA: Mais informações sobre iteração e funções veremos em um capítulo futuro.
O desempacotamento de tuplas (tuple unpacking) nos permitem desestruturaá-la diretamente em referências nomeadas
>>> min, max = minmax(a) >>> min 1 >>> max 6
Podemos facilmente trocar (swap) variáveis usando tuplas
>>> a = 5 >>> b = 10 >>> a,b = b,a >>> a 10 >>> b 5
Veja como o mesmo código sem tupla fica mais verboso
>>> x = 4 >>> y = 5 >>> >>> temp = x >>> x = y >>> y = temp >>> x 5 >>> y 4
Alguns métodos das tuplas
index()
Quando precisamos descobrir o índice de um valor específico
>>> a = (1,2,3,1) >>> a.index(1) 0
count()
Conta quantas vezes um dado valor aparece em tupla
>>> a = (1,2,3,1) >>> a.count(1) 2
Agora pergunta é onde eu vou usar tupla?
Suponha que vamos escrever um programa onde passaremos um objeto e precisamos ter certeza de que ele não será alterado, nesses casos tupla pode ser a nossa solução por sua principal característica (imutable)
Exercício
1: Escreva uma tupla que só pode imprimir valores pares
MyTup = ("Bem-vindo", "ao", "mundo", "da","super", "tupla")
#Saída
("Para", "mundo", "tupla")
Conjuntos
Conjuntos (sets) são uma coleção desordenada de elementos exclusivos. A coleção é mutável, ou seja, os elementos podem ser adicionados/removidos do conjunto, mas cada elemento deve ser ele próprio imutável muito semelhante às chaves keys de um dicionário.
Conjuntos são semelhantes aos dicionários (assim como eles, usam chaves), mas cada item é um único objeto ao invés de um par unido por dois pontos.
>>> c = {1,2,3,4} >>> c {1, 2, 3, 4} >>> type(c) <class 'set'>
Os conjuntos são usados principalmente para descartar itens duplicados
>>> d = {1,2,3,3,2} >>> d {1, 2, 3}
Os conjuntos são iteráveis
>>> for i in d: ... print(i) ... 1 2 3
Para adicionar elementos ao conjunto usamos o método add()
>>> e {1, 2, 3} >>> e.add(4) >>> e {1, 2, 3, 4}
Se tentarmos adicionar um elemento que já existe não haverá efeito e nem será lançado qualquer erro.
>>> e.add (4) >>> e {1, 2, 3, 4}
Para adicionar vários elementos
>>> e.update([7,8,9]) >>> e {1, 2, 3, 4, 7, 8, 9}
Para remover um elemento do conjunto
>>> e.remove(7) >>> e {1, 2, 3, 4, 8, 9}
NOTA: Tentar remover um elemento que não existe lançará um erro
>>> e.remove (7) Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 7 # outro método análogo é o método é descartar >>> e.discard(1) >>> e {2, 3, 4} # não produz qualquer erro mesmo o membro não estando presente >>> e.discard (1)
O outro uso útil de tipos de conjunto é o grupo poderoso de operações. Estes permitem-nos facilmente calcular conjuntos união, conjunto diferença, conjunto interseção e subconjuntos.
# Diferença >>> a = {1,2,3} >>> b = {3,4,5} >>> a.difference(b) {1, 2} # Intersecção >>> a.intersection(b) {3} # subconjunto Subset >>> a.issubset(b) False >>> b.issubset(a) False
Final da lição do Dia 06, Em caso de dúvidas ou qualquer outra discussão, este é o link para o canal (Comunicação somente em Inglês – english only) Python Slack channel http://devops-myworld.slack.com
- Copyright – Learn Python Fundamental in 30 Days )[medium.com – devops-challenge] http://medium.com/devops-challenge *
Deixe um comentário