Python 中对字符串进行切片两种方法

在 Python 中,有两种对字符串进行切片的方法。
  1. 使用切片表示法
  2. 使用slice() 函数

1、使用切片表示法
这是 Python 中最常见、最简洁的字符串切片方法。

切片表示法的语法如下:

str[start:stop:step]

上述切片表示法中,:

  • start表示切片操作的起始位置。
  • stop是切片应该结束的索引。停止索引是排他的,这意味着切片不包含该索引。
  • step表示切片时各个索引之间的增量;例如,步骤 2 将占用所有其他字符。这是一个可选参数。
请务必注意,使用小于或等于第一个索引的第二个索引将导致空字符串。

有一个字符串,并且您想要提取其中的一部分:

str = "Hello, world!"
print(str[0:5])

输出:
Hello

反转字符串
可以使用切片符号来反转字符串。通过将step参数设置为-1来做到这一点,这意味着“向后退一个元素”。

str = "Hello, world!"
print(str[::-1])  

输出:

!dlrow,olleH

获取每个第 n 个字符
使用 step 参数来获取字符串中的每第 n 个字符。

例如,以下是获取每隔一个字符的方法:

str = "Hello, world!"
print(str[::2]) 

输出:
Hlo ol!

删除最后一个字符

str = "Hello, world!"
print(str[:-1])

上面的代码将从字符串中删除最后一个字符“ !”。


获取最后 n 个字符
如果要从字符串中获取最后n 个字符,可以使用负索引和切片。

下面的代码演示了这个方法:

str = "Hello, world!"
print(str[-5:])  

输出:orld!

2、使用 slice() 函数对字符串进行切片
slice ()函数是一个内置函数,它使用切片构造函数创建切片对象。它可用于对字符串(或列表,或任何其他序列类型)进行切片。

slice ()函数采用与切片符号相同的开始、停止和步骤参数。

切片函数的语法如下:

slice(start, stop, step)

示例 1:提取子字符串
假设您有一个格式为HH:MM:SS 的时间戳,但您只对小时和分钟感兴趣。您可以使用slice()函数提取时间戳的特定部分。

下面的代码演示了这个方法:

timestamp = "12:30:45"
slice_obj = slice(0, 5)  
hours_and_minutes = timestamp[slice_obj]
print(hours_and_minutes)  

上面的代码将提取字符串的前五个字符,即“12:30”

示例 2:反转字符串
反转字符串在多种应用中都很有用。

例如,在DNA测序中,经常需要DNA序列的反向互补。

以下是该方法的示例:

dna_sequence = "AGTCCG"
slice_obj = slice(None, None, -1) 
reversed_dna_sequence = dna_sequence[slice_obj]
print(reversed_dna_sequence)  

输出:GCCTGA

示例 3:删除最后一个字符
当处理要忽略最后一个字符的字符串时,这会很方便。

例如,有时传递的数据带有尾随逗号或您想要删除的其他标点符号。

data = "123,456,789,"
slice_obj = slice(None, -1)
cleaned_data = data[slice_obj]
print(cleaned_data)  

输出:123,456,789

示例 4:获取最后 'n' 个字符
这对于许多任务很有用。例如,如果您有一个文件名列表,并且想要获取文件扩展名(通常是最后三个字符),则可以使用此方法。

下面的代码演示了这个方法:

filename = "image.png"
slice_obj = slice(-3, None) 
file_extension = filename[slice_obj]
print(file_extension) 

上面的代码将在控制台打印“png”: