slice()函數(shù)返回一個slice對象,該對象可用于對字符串,列表,元組等進行切片。
slice對象用于切片給定的序列(字符串,字節(jié),元組,列表或范圍)或任何支持序列協(xié)議的對象(實現(xiàn)__getitem__()和__len__()方法)。
slice()的語法為:
slice(start, stop, step)
slice() 可以采用三個參數(shù):
start(可選) -對象切片開始的起始整數(shù)。如果未提供,則默認為None。
stop-整數(shù),直到切片發(fā)生。切片在索引stop-1(最后一個元素)處停止。
step(可選) -整數(shù)值,用于確定切片時每個索引之間的增量。如果未提供,則默認為None。
# 包含索引 (0, 1, 2) result1 = slice(3) print(result1) # 包含索引 (1, 3) result2 = slice(1, 5, 2) print(slice(1, 5, 2))
輸出結果
slice(None, 3, None) slice(1, 5, 2)
在這里,result1和result2是切片對象。
現(xiàn)在我們了解了slice對象,讓我們看看如何從slice對象獲取子字符串,子列表,子元組等。
# 程序從給定字符串獲取子字符串 py_string = 'Python' # stop = 3 # 包含 0, 1 和 2 索引 slice_object = slice(3) print(py_string[slice_object]) # Pyt # start = 1, stop = 6, step = 2 # 包含 1, 3 和 5 索引 slice_object = slice(1, 6, 2) print(py_string[slice_object]) # yhn
輸出結果
Pyt yhn
py_string = 'Python' # start = -1, stop = -4, step = -1 # 包含索引 -1, -2 和 -3 slice_object = slice(-1, -4, -1) print(py_string[slice_object]) # noh
輸出結果
noh
py_list = ['P', 'y', 't', 'h', 'o', 'n'] py_tuple = ('P', 'y', 't', 'h', 'o', 'n') # 包含索引 0, 1 和 2 slice_object = slice(3) print(py_list[slice_object]) # ['P', 'y', 't'] # 包含索引 1 和 3 slice_object = slice(1, 5, 2) print(py_tuple[slice_object]) # ('y', 'h')
輸出結果
['P', 'y', 't'] ('y', 'h')
py_list = ['P', 'y', 't', 'h', 'o', 'n'] py_tuple = ('P', 'y', 't', 'h', 'o', 'n') # 包含索引 -1, -2 和 -3 slice_object = slice(-1, -4, -1) print(py_list[slice_object]) # ['n', 'o', 'h'] # 包含索引 -1 和 -3 slice_object = slice(-1, -5, -2) print(py_tuple[slice_object]) # ('n', 'h')
輸出結果
['n', 'o', 'h'] ('n', 'h')
slice對象可以用Python中的索引語法替換。
您可以交替使用以下語法進行切片:
obj[start:stop:step]
例如,
py_string = 'Python' # 包含索引 0, 1 和 2 print(py_string[0:3]) # Pyt # 包含索引 1 和 3 print(py_string[1:5:2]) # yh
輸出結果
Pyt yh