序列和切片

序列

  • 序列是指:内容连续、有序,可使用下标索引的一类数据容器 。

    • 列表、元组、字符串,均可以可以视为序列。

切片操作

  • 序列支持切片,即:列表、元组、字符串,均支持进行切片操作
    切片:从一个序列中,取出一个子序列

  • 语法:序列[起始下标:结束下标:步长]
    表示从序列中,从指定位置开始,依次取出元素,到指定位置结束,得到一个新序列:
    起始下标表示从何处开始,可以留空,留空视作从头开始
    结束下标(不含结束下标元素)表示何处结束,可以留空,留空视作截取到结尾
    步长表示,依次取元素的间隔
    步长1表示,一个个取元素
    步长2表示,每次跳过1个元素取
    步长N表示,每次跳过N-1个元素取
    步长为负数表示,反向取(注意,起始下标和结束下标也要反向标记)
    注意,此操作不会影响序列本身,而是会得到一个新的序列(列表、元组、字符串)

# 对list进行切片,从1开始,4结束,步长1
my_list = [0, 1, 2, 3, 4, 5, 6]
new_my_list = my_list[1:4:]  # 步长为1可以省略
print(new_my_list)   # [1, 2, 3]

# 对元组tuple进行切片,从头又开始到最后结束,步长1
my_tuple = (0, 1, 2, 3, 4, 5, 6)
new_my_tuple = my_tuple[:]    # 起始和结束下标可以省略,从头到尾都能取到,步长1也可以省略
print(new_my_tuple)   # (0, 1, 2, 3, 4, 5, 6)

# 对字符串进行切片,从头开始,到尾结束,步长为2
my_str = "helloworld"
new_my_str = my_str[::2]
print(new_my_str)   # hlool


# 对字符串进行切片,从头开始,到尾结束,步长为-1
my_str = "helloworld"
new_my_str = my_str[::-1]       # 此方法相当于将序列反转,反向输出
print(new_my_str)  # dlrowolleh

# 对list进行切片,从3开始,1结束,步长-1
my_list = [0, 1, 2, 3, 4, 5, 6]
new_my_list = my_list[3:1:-1]
print(new_my_list)   #[3, 2]

# 对元组tuple进行切片,从头又开始到最后结束,步长-2
my_tuple = (0, 1, 2, 3, 4, 5, 6)
new_my_tuple = my_tuple[::-2]
print(new_my_tuple)   # (6, 4, 2, 0)

练习

# 有字符串:"油加,习学好好要就你,nohtyP学
# 要求输出:好好学习
str_1 = "油加,习学好好要就你,nohtyP学"
str_2 = str_1[3:7:1]
str_3 = str_2[::-1]
# str_3 = str_1[3:7:1][::-1] #可以简写
str_4 = str_1[-12:-16:-1]      # 反向
print(str_3)
print(str_4)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值