Aula 07 – Python – Set, Frozenset e Range

More videos
Views
   

Aula 07 – Python – Set, Frozenset e Range

Aulas baseadas no livro Python para Desenvolvedores de Luiz Eduardo Borges.

COMO UTILIZAR SET, FROZENSET E RANGE EM PYTHON

curso python grátis online Set, Frozenset e Range

Curso python grátis online Set, Frozenset e Range

SET, FROZENSET E RANGE

  • SET é uma sequência mutável sem repetições não ordenada
  • FROZENSET é uma sequência imutável sem repetições não ordenada

IMPLEMENTAM OPERAÇÕES DE CONJUNTOS

  • União
  • Interseção
  • Diferença

RANGE

A função range() permite-nos especificar o início da sequência, o passo, e o valor final

O único parâmetro obrigatório é o que define quem será o último elemento da sequência

  • start – início da sequência
  • stop – último elemento da sequência
  • step – intervalo entre os elementos

Na notação range( stop ), assume-se que o início da sequência é igual a zero e o final igual ao valor que está sendo enviado como argumento

Na notação range( [start], stop[, step] ) podemos definir o início da sequência o último elemento e o passo, isto é, o intervalo entre cada elemento.


# -*- coding: latin1 -*-
# Conjuntos de dados
s1 = set(range(5))
s2 = set(range(2, 6))
s3 = set(range(2, 10, 2))
s4 = set(range(0, -10, -1))
# Exibe os dados
print ('s1:', s1, '\ns2:', s2, '\ns3:', s3)
# União
s1s2 = s1.union(s2)
print ('União de s1 e s2: ', s1s2)
# Diferença
print ('Diferença de s1s2 com s3:', s1s2.difference(s3))
# Interseção
print ('Interseção de s1s2 com s3:', s1s2.intersection(s3))
# Testa se um set inclui outro
if s1.issuperset([1, 2]):
    print ('s1 inclui 1 e 2')
# Testa se não existe elementos em comum
if s1.isdisjoint(s2):
    print ('s1 e s2 não tem elementos em comum')

OBS. Quando uma lista é convertida para set, as repetições são descartadas.

lst = [1, 3, 3, 6, 4, 4]
lst
[1, 3, 3, 6, 4, 4]

set(lst)
{1, 3, 4, 6}

s = set(range(8, 0, -2))
s
{8, 2, 4, 6}

l = list(range(8, 0, -2))
l
[8, 6, 4, 2]

list(s)[1]
2

s.add(5)
{2, 4, 5, 6, 8}

fz = frozenset(range(3))
fz
frozenset({0, 1, 2})

list(fz)[1]
1

FROZENSET É IGUAL AO SET, A DIFERENÇA É QUE O FROZENSET É IMUTÁVEL E NÃO HÁ MÉTODOS DISPONÍVEIS PARA ALTERAR SEUS ELEMENTOS.

Existe um tipo builtin, ou seja, um tipo nativo do python, que é uma lista chamada bytearray.

A classe bytearray é uma sequência mutável de inteiros no intervalo 0 <= x <256.

Ela possui a maioria dos métodos usuais de sequências mutáveis, assim como a maioria dos métodos que o tipo bytes possui.

bytearray é muito semelhante a uma string regular em python, mas com uma diferença importante, enquanto strings são imutáveis, bytearrays são mutáveis, parecido com uma lista de caracteres simples, ou seja, uma string.

É útil porque alguns aplicativos usam sequências de bytes que executam mal com strings imutáveis.

Quando você está fazendo muitas alterações pequenas no meio de grandes blocos de memória, como em um mecanismo de banco de dados ou biblioteca de imagens, as sequências de caracteres têm um desempenho muito ruim, pois tem que ser feita uma cópia da string inteira (possivelmente grande).

bytearrays tem a vantagem de tornar possível fazer esse tipo de mudança sem primeiro fazer uma cópia da memória antes.

Esse caso em particular é mais a exceção do que a regra.

A maioria dos usos envolve comparação de strings ou formatação de strings.

Com isso encerramos mais essa aula. 🙂

Curta a página do Código Fluente no Facebook.
https://www.facebook.com/Codigofluente-338485370069035/

Vou deixar meu link de referidos na digitalocean pra vocês.

Quem se cadastrar por esse link, ganha $100.00 dólares de crédito na digitalocean:

Digital Ocean

Esse outro link é da one.com:

One.com

Obrigado, até a próxima e bons estudos. 😉

Increva-se

Inscreva-se agora e receba um e-mail assim que eu publicar novo conteúdo.

Concordo em me inscrever no blog Código Fluente

Você poderá cancelar sua inscrição a qualquer momento.

(Visited 32 times, 1 visits today)
About The Author
-

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>