Aqui, tentaremos entender a notação de fatia do python nas listas e muito mais.
Sintaxe básica
A notação de fatia do Python é usada para retornar uma lista ou parte de uma lista. A sintaxe básica é a seguinte:
[ iniciar_em : parar_antes : etapa ]
Onde iniciar_em é o índice do primeiro item a ser retornado (incluído), parar_antes é o índice do elemento antes do qual parar (não incluído) e etapa é a distância entre dois itens quaisquer.
Todos os três argumentos são opcionais, o que significa que você pode omitir qualquer um deles. Por exemplo:
numeros = [1, 2, 3, 4, 5]
# começar em 0, parar antes de 4
numeros [1: 4] # [2, 3, 4]
# começa em 0, termina no final da lista
numeros [2:] # [3, 4, 5]
# começa em 0, pára antes de 3
numeros [: 3] # [1, 2, 3]
# começar em 1, parar antes de 4, a cada segundo elemento
numeros [1: 4: 2] # [2, 4]
# começa em 2, termina no final da lista, a cada segundo elemento
numeros [2 :: 2] # [3, 5]
# começa em 0, pára antes de 3, a cada segundo elemento
numeros [: 3: 2] # [1, 3]
# começa em 0, termina no final da lista, a cada segundo elemento
numeros [:: 2] # [1, 3, 5]
# começa em 0, termina no final da lista
numeros [::] # [1, 2, 3, 4, 5]
Como você provavelmente pode perceber pelos exemplos acima, os valores padrão são iniciar_em = 0, parar_antes = len (numeros), etapa = 1.
Valores negativos
Todos os três argumentos também aceitam valores negativos. Para iniciar_em e parar_antes, um valor negativo significa contar a partir do final da lista em vez de contar a partir do início. Por exemplo, -1 representaria o último elemento, -2 o penúltimo elemento etc. Por exemplo:
numeros = [1, 2, 3, 4, 5]
# começar em 1, parar antes do segundo ao último
numeros [1: -2] # [2, 3]
# começa do 3º ao último, termina antes do último
numeros [-3: -1] # [3, 4]
Uma etapa negativa significa que a lista é dividida ao contrário (do fim ao início). Isso também significa que iniciar_em deve ser maior que parar_antes e que parar_antes no contexto de uma passada reversa é mais parecido com parar_antes se você estiver olhando para a lista não invertida. Por exemplo:
numeros = [1, 2, 3, 4, 5]
# revertido
numeros [:: - 1] # [5, 4, 3, 2, 1]
# revertido, começa em 4, pare após 1
numeros [4: 1: -1] # [5, 4, 3]
# revertido, começa enfim, pare após 1, a cada 2
numeros [-1: 1: -2] # [5, 3]
Fatias vazias
Tenha em mente que a notação de fatia é muito tolerante, então você obterá uma lista vazia se os valores dos argumentos estiverem fora do intervalo da lista. Por exemplo:
numeros = [1, 2, 3, 4, 5]
numeros [6: 8] # []
numeros [: - 10] # []
0 Comentários