Python切片字符串

时间:2020-02-23 14:43:19  来源:igfitidea点击:

Python字符串支持切片以创建子字符串。
请注意,Python字符串是不可变的,切片会根据源字符串创建一个新的子字符串,而原始字符串将保持不变。

Python字符串切片

Python slice字符串语法为:

str_object[start_pos:end_pos:step]

切片以start_pos索引(包括)开始,以end_pos索引(排除)结束。
step参数用于指定从开始索引到结束索引执行的步骤。

Python字符串切片始终遵循以下规则:s [:i] + s [i:** == s用于任何索引" i"。

所有这些参数都是可选的– start_pos默认值为0,end_pos默认值为字符串的长度,step默认值为1。

我们来看一些简单的字符串切片函数创建子字符串的示例。

s = 'HelloWorld'

print(s[:])

print(s[::])

输出:

HelloWorld
HelloWorld

请注意,由于未提供任何切片参数,因此子字符串等于原始字符串。

让我们看一些切片字符串的例子。

s = 'HelloWorld'
first_five_chars = s[:5]
print(first_five_chars)

third_to_fifth_chars = s[2:5]
print(third_to_fifth_chars)

输出:

Hello
llo

请注意,索引值从0开始,因此start_pos 2引用字符串中的第三个字符。

使用切片反转字符串

通过将步长值设为-1,我们可以使用切片来反转字符串。

s = 'HelloWorld'
reverse_str = s[::-1]
print(reverse_str)

输出:dlroWolleH

让我们看看使用步骤和负索引值的其他示例。

s1 = s[2:8:2]
print(s1)

输出:loo

这里的子字符串包含来自索引2,4和6的字符。

s1 = s[8:1:-1]
print(s1)

输出:lroWoll

这里的索引值是从头到尾的。
子字符串从头到尾由索引1到7组成。

s1 = s[8:1:-2]
print(s1)

输出:

Python slice也可以使用负索引,在这种情况下,排除start_pos并将end_pos包含在子字符串中。

s1 = s[-4:-2]
print(s1)

输出:or

Python字符串切片可正常处理超出范围的索引。

>>>s = 'Python'
>>>s[100:]
''
>>>s[2:50]
'thon'