Em Python, quando você deve usar listas e quando você usa tuples?
Às vezes você não'não tem escolha, por exemplo, se você tem
"hello %s you are %s years old" % x
então x deve ser um tuple.
Mas se sou eu quem desenha a API e posso escolher os tipos de dados, então quais são as diretrizes?
Tuplos são de tamanho fixo na natureza enquanto listas são dinâmicas.
Em outras palavras, um tuplo
é imutável enquanto uma lista
é mutável.
in
para verificar se um elemento existe no tuple.Os pares são mais rápidos que as listas. Se você're define um conjunto constante de valores e tudo o que você'vai fazer com ele é iterar através dele, use um tuple em vez de uma lista.
Torna o seu código mais seguro se você "escrever-proteger" dados que não precisam de ser alterados. Usar um tuple em vez de uma lista é como ter uma afirmação implícita de que esses dados são constantes e que um pensamento especial (e uma função específica) é necessário para sobrepor-se a isso.
Alguns tufos podem ser usados como chaves de dicionário (especificamente, tufos que contêm valores imutáveis como cordas, números, e outros tufos). Listas nunca podem ser usadas como chaves de dicionário, porque as listas não são imutáveis.
Fonte: Mergulhe em Python 3
Eu acredito (e não sou muito versado em Python) que a principal diferença é que um tuple é imutável (pode't ser alterado no lugar após a atribuição) e uma lista é mutável (você pode anexar, alterar, subtrair, etc).
Então, eu tendo a fazer os meus tuplos coisas que não devem'não mudar após a atribuição e as minhas listas de coisas que podem.
Tem de ser mutável? Use uma lista. Não tem de ser mutável? Usa um tuple.
Caso contrário, é uma questão de escolha.
Para coleções de objetos heterogêneos (como um endereço quebrado em nome, rua, cidade, estado e zip) eu prefiro usar um tuple. Eles podem sempre ser facilmente promovidos a chamados tuple.
Da mesma forma, se a colecção vai ser iterada, prefiro uma lista. Se ele'é apenas um recipiente para guardar vários objectos como um só, prefiro um tuple.