15.12.2022 Views

Python Eficaz

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Se não mencionarmos nem o índice de início (start) nem o final (end) quando

fizermos uma atribuição de um fatiamento a uma variável, o resultado

armazenado na variável será uma cópia em separado da lista original.

b = a[:]

assert b == a and b is not a

Por outro lado, ao atribuirmos uma fatia a uma variável sem usar índices de

início e fim, o conteúdo da variável será substituído por uma referência à lista

original (em vez de criar uma nova lista, ou seja, é a mesma lista, mas que pode

ser chamada por dois nomes, tanto ‘a’ como ‘b’.).

b = a

print('Before', a)

a[:] = [101, 102, 103]

assert a is b # a e b são dois nomes diferentes para a mesma lista

print('After ', a) # A lista a teve seu conteúdo alterado

>>>

Before ['a', 'b', 99, 22, 14, 'h']

After [101, 102, 103]

Lembre-se

• Evite ser prolixo: não digite 0 para o índice inicial (start) ou o comprimento

da lista para o índice final (end).

• O fatiamento sabe como lidar com índices start ou end que extrapolaram os

limites da lista existente, tornando bem fácil expressar fatias limitadas pelo

início ou pelo fim da sequência (como a[:20] ou a[-20:]).

• Atribuir uma lista a uma fatia de outra lista substitui a fatia original pela lista

completa que está sendo atribuída, mesmo que seus tamanhos sejam

diferentes.

Item 6: Evite usar start, end e stride em uma mesma

fatia

Além do fatiamento básico (consulte o Item 5: “Saiba como fatiar sequências”),

o Python possui uma sintaxe especial para definir o salto (stride) na seleção dos

www.full-ebook.com

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!