Listas vs tuples vs conjuntos em Python

O Python tem três formas comuns de guardar vários valores juntos. Uma lista pode mudar e mantém a ordem, um tuple é um registo fixo e um conjunto esquece duplicados. Cada exemplo abaixo foi executado, e a saída mostrada é exata.

Listas: ordem, e podem mudar

Uma lista é a coleção predefinida: append acrescenta no fim, e um ciclo for percorre os itens por ordem. Usa uma lista quando o grupo for crescer ou encolher, como um inventário.

parts = ["wrench"]
parts.append("cable")
print(parts)

Saída:

['wrench', 'cable']

Tuples: um registo fixo

Um tuple não se pode editar no sítio. Isso torna-o adequado para uma coordenada ou qualquer par que queiras desempacotar em dois nomes. Devolver dois valores de uma função também constrói um tuple.

point = (3, 4)
x, y = point
print(x)
print(y)

Saída:

3
4

Conjuntos: itens únicos

Um conjunto deita fora duplicados e responde depressa a "isto está aqui?". O conjunto vazio é set(), porque {} é um dicionário vazio. set(needed) <= set(have) pergunta se cada item necessário já está presente.

needed = {"wrench", "cable"}
have = ["wrench", "cable", "chip", "wrench"]
print(needed <= set(have))

Saída:

True

Perguntas comuns

Posso usar um tuple como chave de dicionário?
Sim, porque um tuple não pode mudar. Uma lista não pode ser chave. É uma razão para as coordenadas serem muitas vezes tuples.
Como faço um conjunto vazio?
Chama set(). Escrever {} dá-te um dicionário vazio.
Quando escolho um conjunto em vez de uma lista?
Quando duplicados não importam e te interessa a pertença, como "tenho cada peça desta receita?"

Pratique