Python里面的切片功能详解
  vZPBi7mFIAfs 2023年11月02日 27 0

在Python中,切片(slicing)是一种从序列类型(如列表、元组、字符串等)中获取子序列的方法。这是一个非常强大且常用的功能。

Python里面的切片功能详解_默认值

基本语法

切片的基本语法是:

sequence[start:stop:step]
  • start:起始索引(包括该索引)。
  • stop:结束索引(不包括该索引)。
  • step:步长。

示例

  1. 基础切片
lst = [0, 1, 2, 3, 4, 5]
print(lst[1:4])  # 输出:[1, 2, 3]
  1. 不指定开始和结束
print(lst[:])  # 输出:[0, 1, 2, 3, 4, 5]
  1. 指定步长
print(lst[::2])  # 输出:[0, 2, 4]
  1. 负索引
print(lst[-3:-1])  # 输出:[3, 4]
  1. 反向切片
print(lst[::-1])  # 输出:[5, 4, 3, 2, 1, 0]
  1. 字符串切片
s = "HELLO"
print(s[1:4])  # 输出:ELL

注意

  • 如果startstop都被省略,并且step是负数,则序列会被反向遍历。
  • 如果stop索引超出范围,Python不会报错,而是简单地返回到序列的末尾。
  • 切片操作不会修改原始序列,而是返回一个新的序列。

切片功能在Python中非常实用,特别是在数据处理、字符串操作和列表操作中。


切片里面step步长详解:

在Python的切片操作中,step,也被称为步长,是一个可选参数,代表从startstop索引时每次递增或递减的数值。步长可以是正数或负数。

作用:

  1. 正步长:当步长为正数时,切片从左到右提取元素。
  2. 负步长:当步长为负数时,切片从右到左提取元素,也就是反向提取。

示例:

考虑以下列表为例:

lst = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  1. 正步长
print(lst[1:8:2])  # 输出:[1, 3, 5, 7]

这里,从索引1开始到索引8(不包括8)以步长为2来提取元素。

  1. 负步长
print(lst[8:1:-2])  # 输出:[8, 6, 4, 2]

这里,从索引8开始到索引1(不包括1)以步长为-2来逆向提取元素。

  1. 使用步长来反转
print(lst[::-1])  # 输出:[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

省略了startstop,但由于步长为-1,所以返回整个列表的反向。

注意点:

  • step默认值为1。所以当你省略step时,Python将按默认值1逐个提取元素。
  • 当使用负的step值时,start应该比stop更接近列表的末尾,否则返回的结果将是空列表。

步长在切片操作中为你提供了额外的灵活性,使你能够以不同的方式提取序列中的元素。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  KmYlqcgEuC3l   3天前   10   0   0 Python
vZPBi7mFIAfs