Tuplos e listas

Sequências, desempacotamento, operações, mutação, alias e cópia superficial.

TLDR

Perguntar sobre esta página

ChatGPTClaudePerplexityGrokGeminiCopiar e abrirDeepSeekCopiar e abrir

Sequências e mutação

  • Listas, tuplos e strings têm ordem e suportam len, índices, fatias e in. A lista é mutável; o recipiente tuplo é imutável.
  • A vírgula cria o tuplo: (12,) tem um elemento, (12) é um inteiro. x, y = (3, 4) desempacota; o número de nomes tem de coincidir com o de elementos.
  • a, b = b, a usa os valores antigos no lado direito. Um tuplo pode conter uma lista que continua mutável.
OperaçãoEfeito
xs.append(x)Acrescenta x como um elemento
xs.extend(ys)Acrescenta cada elemento de ys
xs.insert(i, x)Insere antes de i
xs.pop(i)Retira e devolve o elemento
xs.remove(x)Retira a primeira ocorrência; falha se faltar
del xs[i]Retira sem devolver
xs[a:b] = ysSubstitui a fatia, podendo mudar o comprimento
  • append, extend, insert, remove, sort e reverse devolvem None. xs = xs.append(4) perde a referência à lista.
  • Evita alterar o comprimento da lista durante o próprio percurso sem uma estratégia explícita.

Alias e cópia superficial

  • b = a cria outro nome para o mesmo objeto, um alias. == compara conteúdo; is compara identidade.
  • a.copy() e a[:] criam outra lista exterior, mantendo referências aos elementos. A cópia é superficial.
Seguir uma cópia superficial
matriz = [[1, 2], [3, 4]]
copia = matriz.copy()
copia[0][0] = 9
print(matriz)
print(copia)
print(matriz is copia, matriz[0] is copia[0])
Resultado

Executa o código para ver a saída e os gráficos.

Ambas mostram [[9, 2], [3, 4]]; a última linha é False True.

  • As listas exteriores são distintas, mas a primeira linha é partilhada.
matrizcopialista exterior Alista exterior B0101[9, 2][3, 4]Caixas: objetos. Setas: referências.
  • Para esta matriz de inteiros, copiar cada linha separa a mutação.
  • Estruturas mais profundas podem exigir copiar mais níveis.
  • [[0] * 3] * 2 repete a mesma linha; cria cada linha separadamente para serem independentes.

Percorrer, combinar e ordenar

  • enumerate(xs) fornece índice e valor. zip(u, v) fornece pares correspondentes e termina na sequência mais curta. Valida comprimentos iguais se o contrato o exigir.
  • O produto interno de [2, 3] e [4, 5] é 2×4+3×5=232\times4+3\times5=23; para vetores vazios, a soma é zero.
  • sorted(xs) devolve uma lista nova; xs.sort() altera a existente e devolve None. reverse=True pede ordem decrescente; key escolhe o valor usado na comparação.

À tua maneira

Aparência

Modo de cor
Tema
Cor de destaque

Leitura

Fonte de leitura

Álgebra, lógica e uma ideia de cada vez.

Código

Fonte do código

Navegação

Cursor de leitura, sem edição. h, j, k, l movem; / pesquisa nesta página. v seleciona caracteres; V seleciona linhas; y copia. Tab permite destacar ou comentar. Espaço ou Enter abre blocos recolhíveis. Nos cartões, h, j, k, l mudam o foco.

CSS personalizado

Ativa uma sugestão ou guarda o teu CSS. Só muda este navegador.

Usa --page, --text e --accent para acompanhar o tema.

Seletores e recuperação

.site-header, .prose, .course-card, [data-reading-history], [data-playground] e .page-actions.

Abre a aparência com a tecla vírgula ou no rodapé. Se o CSS esconder os controlos, abre esta página sem CSS personalizado.

Pesquisar

Escreve para pesquisar em todo o site.

para escolher · Enter para abrir · Esc para fechar

Copiar fórmula

A cópia automática não está disponível. Copia o LaTeX abaixo.

Pesquisar nesta página

Enter procura · n / N repetem · Esc cancela. Ctrl / Cmd K pesquisa todo o site.

Atalhos de teclado

Clica numa tecla para a mudar. Esc cancela. Backspace desativa.

PesquisarCtrl / Cmd K

Os atalhos não interferem enquanto escreves. Tab e Enter funcionam sempre.