python 数据容器(序列)的切片

序列:内容连续,有序,可使用下标索引的一类数据容器
列表、元组、字符串,均可以视为序列。
切片:从一个序列中,取出一个子序列。
语法:序列[起始下标:结束下标:步长]
表示从序列中,从指定位置开始,依次取出元素,到指定位置结束,得到一个新序列:

  • 起始下标表示从何处开始 可以为空 留空表示从头开始

  • 结束下标(不含)表示何处结束 可以留空 留空视作截取到结尾

  • 步长表示 依次取元素的间隔

      步长1  表示一个个取元素
    
      步长2  表示 每次跳过一个元素取
    
      步长N表示 每次跳过N-1个元素取
    
      步长为负数表示 反向取 注意 起始下标和结束下标也要反向标记
    
result = my_list[:]  # 起始和结束不写表示从头到尾,步长为1可以省略
result = my_list[::2] 
result = my_list[6:1:-2] # 起始下标和结束下标也要反向标记

此操作不会影响序列本身,而是会得到新的序列

案例

  • 要想得到倒序的字符串
    result = my_list[::-1]
  • 要想得到倒序的字符串的9-14的字符
    result = my_list[::-1][9:14]
my_str = "万过薪月,员序程马黑来,nohtyp学"
# 要输出为 "黑马程序员"

# 方式1:先倒序,在切片取出
result1 = my_str[::-1][9:14]
print(f"方式1结果:{result1},其类型为:{type(result1)}")

# 方式2:先切片,后倒序
result2 = my_str[6:11][::-1]
print(f"方式2结果:{result2},其类型为:{type(result2)}")

# split分割"," replace替换"来"为空
result3 = my_str.split(",")[1].replace("来", "")[::-1]
print(f"方式3结果:{result3},其类型为:{type(result3)}")
"""
运行结果:
方式1结果:黑马程序员,其类型为:<class 'str'>
方式2结果:来黑马程序,其类型为:<class 'str'>
方式3结果:黑马程序员,其类型为:<class 'str'>
"""
posted @ 2022-10-07 20:26  Dalier-!  阅读(111)  评论(0)    收藏  举报