Python学习之路——数据容器部分【(序列)切片操作】

一、序列

        内容连续,有序,可使用下标索引的一类数据容器

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

二、序列切片

序列支持切片,即:列表、元组和字符串均支持切片操作

(一)切片

从一个序列中,取出一个子序列

(二)语法

序列 [ 起始下标: 结束下标: 步长 ]

表示在序列中,从指定位置开始,依次取出元素,到指定位置结束,得到一个新序列:

  • 起始下标表示从何处开始,可以留空(不填入参数),留空视作从头开始
  • 结束下标(不含)表示从何处结束,可以留空,留空视作截取到结尾
  • 步长表示,依次取元素的的间隔
    • 步长 1 表示,一个个取元素
    • 步长 2 表示,每次跳一个元素取
    • 步长 N 表示,每次跳过 N - 1 个元素取

(三)注意

此操作不会影响序列本身,而是会得到一个新的序列(列表、元组、字符串)

(四)操作示例

def func01():
    # 先定义好序列
    # 列表
    my_list01 = [1, '、', 'Be', 'who', 'you', 'are', 'on', 'the', 'inside.']
    # 元组
    my_tuple01 = (2, '、', 'We', 'learn', 'from', 'our', 'mistakes.')
    # 字符串
    my_str01 = '3、You have to love yourself.'

    # 对list进行切片,从1开始,4结束,步长1
    my_list02 = my_list01[1: 5:]
    print(f'得到的新的容器内容为:{my_list02},类型为:{type(my_list02)}')

    # 对tuple进行切片,从头开始,到最后结束,步长1
    my_tuple02 = my_tuple01[::]  # my_tuple02 = my_tuple01[:] 也可以这么写
    print(f'得到的新的容器内容为:{my_tuple02},类型为:{type(my_tuple02)}')

    # 对str进行切片,从头开始,到最后结束,步长2
    my_str02 = my_str01[:: 2]
    print(f'得到的新的容器内容为:{my_str02},类型为:{type(my_str02)}')

    # 对str进行切片,从头开始,到最后结束,步长-1
    my_str03 = my_str01[:: -1]
    print(f'得到的新的容器内容为:{my_str03},类型为:{type(my_str03)}')

    # 对列表进行切片,从3开始,到1结束,步长-1
    my_list03 = my_list01[3: 1: -1]
    print(f'得到的新的容器内容为:{my_list03},类型为:{type(my_list03)}')

    # 对元组进行切片,从头开始,到尾结束,步长-2
    my_tuple03 = my_tuple01[:: -2]
    print(f'得到的新的容器内容为:{my_tuple03},类型为:{type(my_tuple03)}')

结果如下:

(五)练习案例

给定字符串
        。负倾华韶,少年是自我
                得到韶华

先将字符串进行定义赋值

my_str = '。负倾华韶,少年是自我'

1、方法一

word01 = my_str.index('韶')
word02 = my_str.index('华')
print(f'我得到的字符串为:{my_str[word01] + my_str[word02]}')

2、方法二

my_new_str = my_str[-7: -9: -1]  # 注意这个步长要为负数,因为你是从后往前取元素
print(f'我得到的新的字符串为:  {my_new_str}  , 数据类型为:{type(my_new_str)}')

3、方法三

my_str = my_str[-1::-1]
print(f'得到的新的数据容器内的数据为:{my_str}')
my_str = my_str[6: 8: 1]
print(f'新的内容为:{my_str}')

4、方法四

my_str02 = '。负倾华韶,少年是自我'
my_list = my_str02.split(',')
print(f'新的序列的内容为:{my_list}, 数据类型为:{type(my_str02)}')   # 得到的序列为列表
# 取到第一部分的内容
my_list = my_list[0]
print(f'取到的第一部分的内容为:{my_list}')
# 将其他的内容全部删除
my_str02 = my_list.replace('倾', '')
my_str02 = my_str02.replace('负', '')
my_str02 = my_str02.replace('。', '')
print(f'新的内容为:{my_str02}')
# 进行取反操作即可
my_str02 = my_str02[-1::-1]
print(f'得到的内容为:{my_str02}')

5、另外

还有很多种方法:

比如说:

  • 循环遍历,如果字符串内的某个值等于你想要取到的值,拿出来,之后进行拼接就好了
  • 等等等等,想出来的评论区可以进行讨论哦

下一节内容我想讲一下集合的内容,期待一下哦

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值