切片(slice)

目录

一、基本介绍

1、什么是切片:

2、什么是序列:

3、列表、元组、字符串均可以视为序列

二、基本语法

1、基本语法

2、举例说明

三、注意事项和使用细节

四、练习 


一、基本介绍

1、什么是切片:

从一个序列中,取出一个子序列,在实际开发中,程序员经常对序列进行切片操作

2、什么是序列:

序列是指,内容连续,有序,可使用索引的一类数据容器

3、列表、元组、字符串均可以视为序列

二、基本语法

1、基本语法

序列[起始索引:结束索引:步长]

1)表示从序列中,从指定的起始索引开始,按照指定的步长,依次取出元素,到指定结束索引为止,截取到一个新的序列

2)切片操作是 前闭后开,也就是 [起始索引:结束索引),即截取的子序列,包括起始索引,但是不包括结束索引的部分

3)步长表示,依次取出元素的间隔

步长为1:一个一个的去处元素

步长为2:每次跳过一个元素取出

步长为N:每次跳过N-1个元素取出

2、举例说明

# 对字符串进行切片操作
str="hello,world"
# 需求:截取"hello"
str_slice=str[0:5:1]
print("str_slice:",str_slice)  # hello

# 对列表进行切片
list_a=["jack","tom","yoyo","nono","hsp"]
# 需要截取 ["tom","nono"]
list_slice=list_a[1:4:2]
print("list_slice:",list_slice)  # ['tom', 'nono']

# 对元组进行切片
tuple_a=(100,200,300,400,500,600)
# 需要截取 (200,300,400,500)
tuple_slice=tuple_a[1:5:1]
print("tuple_slice:",tuple_slice)  # (200, 300, 400, 500)

三、注意事项和使用细节

1、切片语法:序列 [起始索引:结束索引:步长]

  • 起始索引如果不写,默认为0
  • 结束索引如果不写,默认截取到结尾
  • 步长如果不写,默认为1
str="hello,韩顺平教育"
str_slice01=str[:5:1]
print("str_slice01->",str_slice01)  # hello

str_slice02=str[1::1]
print("str_slice02->",str_slice02)  # ello,韩顺平教育

str_slice03=str[::1]
print("str_slice03->",str_slice03)  # hello,韩顺平教育

str_slice04=str[2:5:]
print("str_slice04->",str_slice04)  # llo

 2、切片语法:序列 [起始索引:结束索引:步长]

  • 步长为负数,表示反向取,同时注意起始索引和结束索引也要反向标
str="123456"
str_slice05=str[-1::-1]
print("str_slice05->",str_slice05)  # 654321

str_slice06=str[-1:-6:-1]
print("str_slice06->",str_slice06)  # 65432

3、切片操作并不会影响原序列,而是返回了一个序列

str="ABCD"
str_slice07=str[1:3:1]
print(f"str->{str} str_slice07->{str_slice07}")  # "ABCD" "BC"

四、练习 

定义列表 list_name=["Jack","Lisa","Hsp","Paul","Smith","Kobe"]

取出前三个名字,取出后三个名字,并且保证原来顺序

# 定义列表
list_name=["Jack","Lisa","Hsp","Paul","Smith","Kobe"]

# 取出前三个名字
# slice_a=list_name[0:3:1]
slice_a=list_name[:3:]
print("取出前三个名字:",slice_a)  # ['Jack', 'Lisa', 'Hsp']

# 取出后三个名字,并且保证原来顺序
# 使用反向切片,然后对元素进行逆序操作
slice_b=list_name[-1:-4:-1]
slice_b.reverse()  # 对元素进行逆序操作
print("取出后三个名字:",slice_b)  # ['Paul', 'Smith', 'Kobe']

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值