Em Python, a operação de fatiamento permite obter uma subsequência de uma sequência (como uma lista, tupla, string, etc.) em vez da sequência inteira. As operações de fatiamento usam dois pontos (:) para especificar a posição inicial, a posição final e o tamanho do passo.
A sintaxe básica para fatiar é:
sequence[start:stop:step]
start
: O índice da posição inicial (incluindo o elemento nessa posição).stop
: O índice da posição final (excluindo o elemento nessa posição).step
: Tamanho do passo, controla o intervalo de obtenção de elementos a cada vez, o valor padrão é 1.
Aqui estão algumas operações comuns de fatiamento:
- Obtenha a subsequência :
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
subset = my_list[2:5] # 从索引2开始到索引5(不包括),结果为 [2, 3, 4]
- Especifique o tamanho do passo :
my_string = "abcdefg"
subset = my_string[1:6:2] # 从索引1开始到索引6(不包括),步长为2,结果为 "bdf"
- Omita a posição inicial ou final :
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
subset1 = my_list[:5] # 从开头到索引5(不包括),结果为 [0, 1, 2, 3, 4]
subset2 = my_list[5:] # 从索引5开始到结尾,结果为 [5, 6, 7, 8, 9]
- Fatiamento reverso :
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
subset = my_list[::-1] # 从结尾到开头,步长为-1,实现反向,结果为 [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
- Modifique elementos em uma fatia :
my_list = [0, 1, 2, 3, 4, 5]
my_list[1:3] = [10, 20, 30] # 替换索引1到索引3(不包括)的元素,结果为 [0, 10, 20, 30, 3, 4, 5]
Deve-se observar que a operação de fatiamento retorna uma nova sequência e a sequência original não foi alterada.
Operações clássicas de fatiamento
- Fatia direta para obter elementos
- Fatia reversa para obter elementos
- Especifique o tamanho do passo para pegar os elementos
O significado da operação de fatiamento
Reduza o uso de loops em seu código