Características das Estruturas

EstruturaOrdenadoMutávelConstrutorExemplo
listSimSim[] ou list()[1, 2.5, 'Pedro', True]
tupleSimNão() ou tuple()(1, 2.5, 'Pedro', True)
setNãoSimset(){1, 2.5, 'Pedro', True}
dictSimSim{} ou dict(){6: 'jun', 7: 'jul'}

Listas

As listas são coleções ordenadas e mutáveis, usadas para armazenar vários itens em uma única variável.

lista = []
print(type(lista))

Saída:

<class 'list'>

Criando lista com range

list(range(10))

Saída:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Criando lista de strings

lista = ['uva', 'maçã', 'pêra', 'morango']
print(lista)

Saída:

['uva', 'maçã', 'pêra', 'morango']

Criando lista mista

lista = ['abc', 0.5, True, 90]
print(lista)

Saída:

['abc', 0.5, True, 90]

Verificando tamanho

lista = ['abc', 0.5, True, 90]
print(len(lista))

Saída:

4

Acessando itens

lista = ['uva', 'maçã', 'pêra', 'morango']
print(lista[0])
print(lista[2])
print(lista[-1])

Saída:

uva
pêra
morango

Lista dentro de lista

usuarios = [
    ["Maria", 18],
    ["Roberto", 20],
    ["Laura", 25],
    ["Carlos", 19]
]

Acessando subitens

lista = [[2, 3, 5], [1, 2], [9, 6, 9]]
print(lista[1][0])

Saída:

1

Fatiamento

lista = [2, 4, 12, 20, 34, 1, 9]
lista[inicio:fim:passo]

Exemplos:

print(lista[2:5])
print(lista[:5])
print(lista[5:])
print(lista[-3:6])
print(lista[:5:2])

Saída:

[12, 20, 34]
[2, 4, 12, 20, 34]
[1, 9]
[34, 1]
[2, 12, 34]

Percorrendo listas

lista = ["uva", "maçã", "pêra", "morango"]
for item in lista:
    print(item)

Saída:

uva
maçã
pêra
morango

Verificando existência

lista = ["uva", "maçã", "pêra", "morango"]
"pêra" in lista (retorna True)
"pêra" not in lista (retorna False)

Verificando com estrutura condicional:

if "pêra" in lista:
	print("Pêra existe na lista!")
else:
	print("Pêra NÃO existe na lista!")

Saída:

Saída: Pêra existe na lista!

Métodos importantes das listas

  • lista.append(x) – adiciona item
  • lista.clear() – limpa a lista
  • lista.copy() – copia a lista
  • lista.count(x) – conta ocorrências
  • lista.extend(lista2) – adiciona itens de outra lista
  • lista.index(x) – retorna índice do item
  • lista.insert(i, x) – insere item
  • lista.pop(i) – remove item
  • lista.remove(x) – remove primeira ocorrência
  • lista.reverse() – inverte ordem
  • lista.sort() – ordena

Tuplas

Tuplas funcionam como listas, porém são imutáveis.

tupla = ()
print(type(tupla))

Saída:

<class 'tuple'>

Criando tuplas

pontoXY = (-2, 5)
pontoXYZ = (-1, 0.5, 3)
usuarioId = ("143535", "Maria")
produto = ("Camisa", "P", 56.00, True)

Acessando itens

tupla = (2, 5, 3)
print(tupla[1])

Saída:

5

Métodos das tuplas

  • tupla.count(x) – conta ocorrências
  • tupla.index(x) – retorna índice do item

Sets (Conjuntos)

Sets são coleções não ordenadas, sem itens duplicados e não indexáveis.

conjunto = set()
print(type(conjunto))

Saída:

<class 'set'>

Operações com sets

x = {'a', 'f', 'c', 'j'}
y = {'c', 'a', 'f', 'd'}

uniao = x | y
print(uniao)

diferenca = x - y
print(diferenca)

intersecao = x & y
print(intersecao)

Saída:

{'c', 'd', 'f', 'a', 'j'}
{'j'}
{'a', 'c', 'f'}

Métodos dos sets

  • conjunto.add(x)
  • conjunto.clear()
  • conjunto.copy()
  • conjunto.difference(outro)
  • conjunto.difference_update(outro)
  • conjunto.discard(x)
  • conjunto.intersection(outro)
  • conjunto.intersection_update(outro)
  • conjunto.isdisjoint(outro)
  • conjunto.issubset(outro)
  • conjunto.issuperset(outro)
  • conjunto.pop()
  • conjunto.remove(x)
  • conjunto.symmetric_difference(outro)
  • conjunto.union(outro)
  • conjunto.update(outro)

Dicionários

Dicionários armazenam pares chave: valor.

dicionario = {"chave": "valor"}

Criando dicionário

dicionario = {
    "nome": "maria",
    "idade": 22,
    "sexo": "feminino"
}

Saída:

{'nome': 'maria', 'idade': 22, 'sexo': 'feminino'}

Acessando valores

print(dicionario["nome"])

Saída:

'maria'

Tamanho do dicionário

len(dicionario)

Saída:

3

Percorrendo dicionário

livros = {
    1: ["Dom Casmurro", "Machado de Assis"],
    2: ["1984", "George Orwell"],
    3: ["O Pequeno Príncipe", "Antoine de Saint-Exupéry"]
}

for id in livros:
    print(f"Id: {id} | Livro: {livros[id]}")

Saída:

Id: 1 | Livro: ['Dom Casmurro', 'Machado de Assis']
Id: 2 | Livro: ['1984', 'George Orwell']
Id: 3 | Livro: ['O Pequeno Príncipe', 'Antoine de Saint-Exupéry']

Métodos importantes

  • dicionario.clear()
  • dicionario.copy()
  • dicionario.fromkeys(chaves)
  • dicionario.get(chave)
  • dicionario.items()
  • dicionario.keys()
  • dicionario.pop(chave)
  • dicionario.popitem()
  • dicionario.setdefault(chave)
  • dicionario.update({...})
  • dicionario.values()

Dicionário com tupla como chave

livros = {
    ("Dom Casmurro", "Machado de Assis"): 1,
    ("1984", "George Orwell"): 2,
    ("O Pequeno Príncipe", "Antoine de Saint-Exupéry"): 3
}

Saída:

{('Dom Casmurro', 'Machado de Assis'): 1, ('1984', 'George Orwell'): 2, ('O Pequeno Príncipe', 'Antoine de Saint-Exupéry'): 3}

Dicionário com lista como valor

livros = {
    1: ["Dom Casmurro", "Machado de Assis"],
    2: ["1984", "George Orwell"],
    3: ["O Pequeno Príncipe", "Antoine de Saint-Exupéry"]
}

Saída:

{1: ['Dom Casmurro', 'Machado de Assis'], 2: ['1984', 'George Orwell'], 3: ['O Pequeno Príncipe'], 4: ['Antoine de Saint-Exupéry']}

Exercícios

  1. Peça 3 notas ao usuário, armazene em uma lista, mostre a maior nota e a média.

  2. Calcule a distância entre dois pontos usando tuplas: √((Xb - Xa)² + (Yb - Ya)²)

  3. Crie dois conjuntos com range: 50–70 e 65–80. Mostre união, diferença e interseção.

  4. Crie um dicionário com linguagens de programação como chaves e avaliação (0–5) como valor. Mostre a melhor e a pior.

  5. Crie uma lista com 5 pessoas (nome, idade, estado civil). Mostre o mais velho, média das idades, quantidade de solteiros e casados.

Aulas