Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Duvidas sobre o operador slice Python

Dada a seguinte lista: convites = ['Romulo', 'Almeida', 'Bronson', 'Nicodemos', 'Rubi']

Podemos fatiar seus elementos através do operador slice. Qual das opções abaixo retorna ['Bronson', 'Nicodemos']:

Porque a opção correta não seria

convites[2:3]

já que o elemento 'Bronson' está na segunda posição e 'Nicodemos' está na terceira, porém a resposta correta é : convites[2:4] sendo q o elemento "4" é o 'Rubi'.

3 respostas
solução!

Primeiro a parte fácil: o primeiro número indica a posição onde a fatia inicia (lembrando que o primeiro elemento está na posição zero), que no exemplo é a posição 2, onde está 'Bronson' como você citou.

Agora o complicado: o segundo número é a posição final "não inclusiva", ou seja, a fatia termina na posição imediatamente antes dessa "posição final".

Seria como dizer que você "trabalha a partir de segunda e descansa a partir de sábado" ao invés de dizer que você "trabalha de segunda a sexta".

Bom dia Marcelo !

Desculpe mais eu não entendi.

A tal "posição final não-inclusiva" quer dizer que você especifica o final da fatia como sendo o primeiro item da sequência que não faz parte da fatia.

Seria como dizer que para montar a fatia, deve pegar os itens começando com 'Bronson' e ir pegando os itens até encontrar 'Rubi', que é o primeiro item que não faz parte da fatia.

Eu acho que seria mais natural dizer que a fatia termina em 'Nicodemos' mas os designers do Python escolheram ser de outra forma (não sei qual a motivação dessa escolha).