Python 字符串切片是通过对给定字符串从头到尾分别进行切片来获取子字符串。本文将介绍两种字符串切片方法,一种使用内置的 slice() 方法,另一种使用 [: ] 数组 slice。
请注意,Python 字符串是不可变的,切片会从源字符串创建一个新的子字符串,而原始字符串保持不变。
方法一:使用slice()方法
slice ()构造函数创建一个切片对象,表示由 range(start、stop、step) 指定的索引集。
语法:
- slice(stop)
- slice(start, stop, step)
参数:start:对象切片开始的起始索引。stop:对象切片停止处的结束索引。step:这是一个可选参数,决定切片的每个索引之间的增量。返回类型:返回仅包含给定范围内的元素的切片对象。
例子:
# Python program to demonstrate
# string slicing
# String slicing
String = 'ASTRING'
# Using slice constructor
s1 = slice(3)
s2 = slice(1, 5, 2)
s3 = slice(-1, -12, -2)
print("String slicing")
print(String[s1])
print(String[s2])
print(String[s3])
输出:
String slicing
AST
ST
GN
在这个示例中,字符串 String 是 ‘ASTRING’。然后,你使用了切片构造器 slice() 来创建三个切片对象 s1、s2 和 s3。
方法二:使用List/array切片[::]方法
你可以使用Python的列表(List)或数组(Array)切片方法 [:] 来获取列表中的一部分元素。这种方法允许你指定切片的起始索引、结束索引和步长。
语法:
arr[start:stop] # 项目从 stop-1 开始
arr[start:] # 项目从数组的其余部分开始
arr[:stop] # 从开头到 stop-1 的项目
arr[:] # 数组的副本整个数组
arr[start:stop:step] # 从开始到停止,一步一步
在此示例中,我们将看到python 列表中的切片索引从 0 开始,以 2 结束(在 3-1=2 处停止)。
# Python program to demonstrate
# string slicing
# String slicing
String = 'lovejkhxw'
# Using indexing sequence
print(String[:3])
输出:
lov
示例2:
在这个示例中,我们使用了字符串切片操作来获取字符串 “lovejkhxw” 中从索引1到索引4(不包括5)的字符,并且步长为2。
# Python program to demonstrate
# string slicing
# String slicing
String = 'lovejkhxw'
# Using indexing sequence
print(String[1:5:2])
输出:
ok
示例3:
在这个示例中,我们使用了字符串切片操作来获取字符串 “lovejkhxw” 中的一部分字符。具体来说,使用了负索引,从字符串末尾(即索引 -1)开始,一直到索引 -8(不包括 -8),并且步长为 -2。这意味着它会从字符串末尾向前每隔2个字符获取一个字符。
# Python program to demonstrate
# string slicing
# String slicing
String = 'lovejkhxw'
# Using indexing sequence
print(String[-1:-8:-2])
输出:
wxkj
示例4:
在此示例中,整个字符串以相反的顺序打印,即反转字符串 “lovejkhxw”。
# Python program to demonstrate
# string slicing
# String slicing
String = 'lovejkhxw'
# Prints string in reverse
print(String[::-1])
输出:
wxhkjevol
使用 islice()
islice() 是 itertools 模块中定义的内置函数。它用于获取迭代器,该迭代器是任何可迭代对象的基于索引的切片。它的工作方式类似于标准切片,但返回一个迭代器。
用法:
itertools.islice(iterable, start, stop[, step])
参数: iterable:任何可迭代序列,如列表、字符串、元组等。 start:可迭代切片开始的起始索引。stop:可迭代切片结束处的结束索引。步骤:可选参数。它指定切片的每个索引之间的间隙。返回类型:从给定的可迭代序列返回迭代器。
# Python program to demonstrate
# islice()
import itertools
# Using islice()
String = 'jkhxwforgeeks'
# prints characters from 3 to 7 skipping one character.
print(''.join(itertools.islice(String, 3, 7)))
#This code is contributed by Edula Vinay Kumar Reddy
输出:
xwfo