📜  Python slice()

📅  最后修改于: 2020-09-20 04:32:41             🧑  作者: Mango

slice() 函数返回一个slice对象,该对象可用于对字符串,列表,元组等进行切片。

slice对象用于切片给定的序列(字符串,字节,元组,列表或范围)或任何支持序列协议的对象(实现__getitem__()__len__()方法)。

slice()的语法为:

slice(start, stop, step)

slice()参数

slice()可以采用三个参数:

  1. start(可选)-对象切片开始的起始整数。如果未提供,则默认为None
  2. stop-整数,直到进行切片。切片在索引停止-1(最后一个元素)处停止。
  3. 步骤(可选)-整数值,用于确定切片时每个索引之间的增量。如果未提供,则默认为None

示例1:创建切片对象以进行切片

# contains indices (0, 1, 2)
result1 = slice(3)
print(result1)

# contains indices (1, 3)
result2 = slice(1, 5, 2)
print(slice(1, 5, 2))

输出

slice(None, 3, None)
slice(1, 5, 2)

在这里, result1result2是切片对象。

现在我们了解了切片对象,让我们看看如何从切片对象获取子字符串,子列表,子元组等。

示例2:使用切片对象获取子字符串

# Program to get a substring from the given string 

py_string = 'Python'

# stop = 3
# contains 0, 1 and 2 indices
slice_object = slice(3) 
print(py_string[slice_object])  # Pyt

# start = 1, stop = 6, step = 2
# contains 1, 3 and 5 indices
slice_object = slice(1, 6, 2)
print(py_string[slice_object])   # yhn

输出

Pyt
yhn

示例3:使用负索引获取子字符串

py_string = 'Python'

# start = -1, stop = -4, step = -1
# contains indices -1, -2 and -3
slice_object = slice(-1, -4, -1)

print(py_string[slice_object])   # noh

输出

noh

示例4:获取子列表和子元组

py_list = ['P', 'y', 't', 'h', 'o', 'n']
py_tuple = ('P', 'y', 't', 'h', 'o', 'n')

# contains indices 0, 1 and 2
slice_object = slice(3)
print(py_list[slice_object]) # ['P', 'y', 't']

# contains indices 1 and 3
slice_object = slice(1, 5, 2)
print(py_tuple[slice_object]) # ('y', 'h')    

输出

['P', 'y', 't']
('y', 'h')

示例5:使用负索引获取子列表和子元组

py_list = ['P', 'y', 't', 'h', 'o', 'n']
py_tuple = ('P', 'y', 't', 'h', 'o', 'n')

# contains indices -1, -2 and -3
slice_object = slice(-1, -4, -1) 
print(py_list[slice_object])  # ['n', 'o', 'h']

# contains indices -1 and -3
slice_object = slice(-1, -5, -2)
print(py_tuple[slice_object]) # ('n', 'h')

输出

['n', 'o', 'h']
('n', 'h')

示例6:使用索引语法进行切片

slice对象可以用Python的索引语法替换。

您可以交替使用以下语法进行切片:

obj[start:stop:step]

例如,

py_string = 'Python'

# contains indices 0, 1 and 2
print(py_string[0:3])  # Pyt

# contains indices 1 and 3
print(py_string[1:5:2]) # yh

输出

Pyt
yh