19 set 2017

Aprenda os fundamentos do Python em 30 Dias  —  Dia 6 (Tuplas e Conjuntos)

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

[code lang=python]
>>> a = (1,2,3)
>>> a
(1, 2, 3)
>>> type(a)
<class 'tuple'>
[/code]

Podemos acessar o elemento usando a indexação

[code lang=python]
>>> a[0]
1
[/code]

Podemos usar len() para encontrar o número de elementos

[code lang=python]
>>> len(a)
3
[/code]

Podemos iterá-lo usando loop

[code lang=python]
>>> for i in a:
… print(i)

1
2
3
[/code]

Concatenar usando o operador +

[code lang=python]
>>> a
(1, 2, 3)
>>> b = (4,5,6)
a + b
(1, 2, 3, 4, 5, 6)
[/code]

Repetição pode ser feito usando o operador *

[code lang=python]
>>> a * 2
(1, 2, 3, 1, 2, 3)
[/code]

Como mencionado acima tuplas são imutáveis, por isso se tentarmos alterá-lo, ele resultará um TypeError

[code lang=python]
>>> a[0]= 4
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
[/code]

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

[code lang=python]
>>> b = (10)
>>> type(b)
<class 'int'>
[/code]

Para uma tupla de um único elemento, devemos incluir uma vírgula à direita do elemento

[code lang=python]
>>> b = (10,)
>>> type(b)
<class 'tuple'>
[/code]

Mas então como podemos especificar as tuplas vazias? Muito simples, para fazer isso basta usar parênteses vazios.

[code lang=python]
>>> c = ()
>>> type(c)
<class 'tuple'>
[/code]

As tuplas são úteis para retornar vários valores

[code lang=python]
>>> def minmax(ellist):
… return min(ellist), max(ellist)

>>> a = [1,2,3,4,5,6]
>>> minmax(a)
(1, 6)
[/code]

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

[code lang=python]
>>> min, max = minmax(a)
>>> min
1
>>> max
6
[/code]

Podemos facilmente trocar (swap) variáveis ​​usando tuplas

[code lang=python]
>>> a = 5
>>> b = 10
>>> a,b = b,a
>>> a
10
>>> b
5
[/code]

Veja como o mesmo código sem tupla fica mais verboso

[code lang=python]
>>> x = 4
>>> y = 5
>>>
>>> temp = x
>>> x = y
>>> y = temp
>>> x
5
>>> y
4
[/code]

Alguns métodos das tuplas

index()

Quando precisamos descobrir o índice de um valor específico

[code lang=python]
>>> a = (1,2,3,1)
>>> a.index(1)
0
[/code]

count()

Conta quantas vezes um dado valor aparece em tupla

[code lang=python]
>>> a = (1,2,3,1)
>>> a.count(1)
2
[/code]

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.

[code lang=python]
>>> c = {1,2,3,4}
>>> c
{1, 2, 3, 4}
>>> type(c)
<class 'set'>
[/code]

Os conjuntos são usados ​​principalmente para descartar itens duplicados

[code lang=python]
>>> d = {1,2,3,3,2}
>>> d
{1, 2, 3}
[/code]

Os conjuntos são iteráveis

[code lang=python]
>>> for i in d:
… print(i)

1
2
3
[/code]

Para adicionar elementos ao conjunto usamos o método add()

[code lang=python]
>>> e
{1, 2, 3}
>>> e.add(4)
>>> e
{1, 2, 3, 4}
[/code]

Se tentarmos adicionar um elemento que já existe não haverá efeito e nem será lançado qualquer erro.

[code lang=python]
>>> e.add (4)
>>> e
{1, 2, 3, 4}
[/code]

Para adicionar vários elementos

[code lang=python]
>>> e.update([7,8,9])
>>> e
{1, 2, 3, 4, 7, 8, 9}
[/code]

Para remover um elemento do conjunto

[code lang=python]
>>> e.remove(7)
>>> e
{1, 2, 3, 4, 8, 9}
[/code]

NOTA: Tentar remover um elemento que não existe lançará um erro

[code lang=python]
>>> 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)
[/code]

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.

[code lang=python]
# 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
[/code]


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 *

Leave a Reply