Python学习从0到1 day12 Python数据容器.3.字符串与数据容器的切片操作

世界之大,从不在手心拙劣的掌纹之下

                                            ——24.2.3

一、字符串的定义和操作

1.定义

字符串是字符的容器,一个字符串可以存放任意数量的字符

2.字符串的下标(索引)

和其他容器如:列表、元组一样,字符串也可以通过下标进行访问

        从前向后,下标从0开始

        从后向前,下标从-1开始

my_str = "一切都会好的"
#通过下标取索引值
value1 = my_str[4]
value2 = my_str[-3]
print(value1)   # 会
print(value2)   # 好

 

同元组一样,字符串是一个:无法修改的数据容器

所以:

修改指定下标的字符        (如,字符串[0] = 'a')

移除特定下标的字符        (如,del字符串[0]、字符串.remove()、字符串.pop()等)

追加字符等                       (如,字符串.append())

均无法完成,如果必须要做,只能得到一个新的字符串,老字符串无法修改

字符串并不支持修改

3.字符串的常用操作

1.查找特定字符串的下标索引值

语法:字符串.index(字符串)

#查找index方法
value3 = my_str.index('一切')
print(f'在字符串一切都会好的中查找一切,起始下标是:{value3}')

2.字符串的替换

语法:字符串.replace(字符串1,字符串2)

功能:将字符串内的全部:字符串1,替换为字符串2

注意:不是修改字符串本身,而是得到了一个新字符串

#替换replace方法
value4 = my_str.replace("都会","一定都会")
print(f'在字符串一切都会好的将都会替换后的结果是:{value4}')

3.字符串的分割

语法:字符串.split(分隔符字符串)

功能:按照指定的分隔符字符串,将字符串划分为多个字符串,并存入列表对象中

注意:字符串本身不变,而是得到了一个列表对象

#分割split方法
my_str = "一切都会好的,万事胜意,未来可期,我一直相信"
value5 = my_str.split(",")
print(f'字符串中以逗号隔开的列表元素为{value5},类型是{type(value5)}')

4.字符串的规整操作(去前后空格)

语法:字符串.strip()

5.字符串的规整操作(去前后指定字符串)

语法:字符串.strip(字符串)

#strip规整字符串方法
my_str = "  12345一切都会好的 万事胜意 我一直相信54321  "
print(my_str)
value6 = my_str.strip()
print(f"将字符串{my_str}进行strip切分后得到:{value6},类型是:{type(value6)}")
my_str = "12345一切都会好的 万事胜意 我一直相信54321"
value7 = my_str.strip("12345")
print(f"将字符串{my_str}进行strip切分后得到:{value7},类型是:{type(value7)}")

6.统计字符串内某字符串的出现次数

语法:字符串.count(统计的字符)

#统计字符串中某字符串的出现次数,count
my_str = "一切都会好的,万事胜意,未来可期,我一直相信"
count = my_str.count("一")
print(f"字符串{my_str}中含有{count}个”一“ ")

7.统计字符串的长度

语法:len(字符串)

#统计字符串的长度
my_str = "一切都会好的,万事胜意,未来可期,我一直相信"
value8 = len(my_str)
print(f"字符串{my_str}的长度是{value8}")

8.字符串常用操作汇总

9.字符串的遍历

同列表、元组一样,字符串也支持while循环和for循环进行遍历

#字符串案例
my_str1 = "一切都会好的"
i = 0
while i < len(my_str1):
    print(my_str1[i])
    i+=1

my_str2 = "我一直相信"
for i in my_str2:
    print(i)

二、字符串的特点

作为数据容器,字符串有如下特点:

只可以存储字符串

长度任意(取决于内存大小)

支持下标索引

允许重复字符串存在

不可以修改(增加或删除元素等)

支持for循环

三、字符串练习案例:分割字符串

给定一个字符串:”itheima itcast boxuegu“

        ① 统计字符串内有多少个’it‘字符

        ② 将字符串内的空格,全部替换为字符:”|“

        ③ 并按照’|‘进行字符串分割,得到列表

# 给定一个字符串:”itheima itcast boxuegu“
str = "itheima itcast boxuegu"

# ① 统计字符串内有多少个’it‘字符
num = str.count("it")
print(f"字符串{str}中共有{num}个it")

# ② 将字符串内的空格,全部替换为字符:”|“
newStr = str.replace(" ","|")
print(f"将字符串{str}中的空格改为|,改后为{newStr}")

# ③ 并按照’|‘进行字符串分割,得到列表
newStr2 = str.split("|")
print(f"字符串{newStr}用|分割后得到{newStr2}")

四、数据容器(序列)的切片

1.序列

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

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

2.序列的常用操作——切片

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

切片:从一个序列中,取出一个子序列

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

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

        起始下标表示从何处开始,可以留空,留空视作从头开始

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

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

                步长1表示,一个个取元素

                步长2表示,每次跳过1个元素取

                步长N表示,每次跳过N-1个元素取

                步长为负数表示,反向取(注意,起始下标和结束下标也要反向标记)

注意:此操作不会修改序列本身,而是会得到一个新的序列(列表、元组、字符串)

3.演示对序列进行切片操作

1.对列表(list)进行切片

# 1.对列表(list)进行切片,从1开始,4结束,步长为1
my_list = [0,1,2,3,4,5,6,7,8,9]
result1 = my_list[1:4]  #步长默认为1
print(f'result1结果为{result1}')

# 2.对列表(list)进行切片,从3开始到1结束,步长-1
my_list = [0,1,2,3,4,5,6,7,8,9]
result2 = my_list[3:1:-1]
print(f'result2结果为{result2}')

2.对元组(tuple)进行切片

# 3.对元组(tuple)进行切片,从头开始,到最后结束,步长为1
my_tuple = (0,1,2,3,4,5,6,7,8,9)
result3 = my_tuple[:]   #起始和结尾不写表示从头到尾,步长为1可以省略
print(f"result3结果为{result3}")

# 4.对元组(tuple)进行切片,从头开始到尾结束,步长-2
my_tuple = (0,1,2,3,4,5,6,7,8,9)
result4 = my_tuple[::-2]
print(f"result4结果为{result4}")

3.对字符串(str)进行切片

# 5.对字符串(str)进行切片,从头开始到最后结束,步长-1
my_str = '一切都会好的'
result5 = my_str[::-1]
print(f'result5结果为{result5}')

# 6.对字符串(str)进行切片,从头开始到最后结束,步长2
my_str = "一切都会好的"
result6 = my_str[::2]
print(f'result6结果为{result6}')


4.总结

1.什么是序列?

内容连续、有序,支持下标索引的一类数据容器

2.哪些数据容器可以视为序列?

列表、元组、字符串

3.序列如何做切片?

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

        起始可以省略,省略从头开始

        结束可以省略,省略到尾结束

        步长可以省略,省略步长为1(可以为负数,表示倒叙执行)

5.练习案例:序列的切片实践

有字符串:”意胜事万,排安的好最是都切一“

        请使用学过的任何方式,得到”最好的安排“

可用方式参考:

        倒叙字符串,切片取出或切片取出,然后倒序

        split分割”,“replace替换”是都切一“,倒叙字符串

# 方法1:直接根据开始结束位置直接切片取出
my_str = "意胜事万,排安的好最是都切一"
method1 = my_str[9:4:-1]
print(f"方式1:{method1}")

#方法2:倒叙字符串,切片取出
my_str = "意胜事万,排安的好最是都切一"
method2 = my_str[::-1][4:9]
print(f"方式2:{method2}")

#方法3:切片取出,然后倒叙
my_str = "意胜事万,排安的好最是都切一"
method3 = my_str[5:10][::-1]
print(f"方式3:{method3}")

#方法4:split分割”,“ replace替换”来“为空,倒叙字符串
method4 = my_str.split(",")[1].replace("是都切一","")[::-1]
print(f"方式4:{method4}")

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值