数据容器:str(字符串)
- 字符串的下标(索引):同其他容器(如列表、元组),字符串也可以通过下标进行访问
- 从前向后,下标从0开始
- 从后向前,下标从-1开始
my_str = "hello and python" # 通过下标索引取值 value = my_str[2] value2 = my_str[-8] print(f"从字符串{my_str}取出下标为2的:{value},下标为-8的:{value2}") 运行效果: 从字符串hello and python取出下标为2的:l,下标为-8的:d
同元组一样,字符串是一个:无法修改的数据容器
所以:
- 修改指定下标的字符 (如:字符串[0] = “a”)
- 移除特定下标的字符 (如:del字符串[0]、字符串.remove()、字符串.pop()等等)
- 追加字符等 (如:字符串.append())
- 均无法完成。如果必须要做,只能得到一个新字符串,老的字符串是无法修改的
字符串的常用操作
(1)查找特定字符串的下标索引值
语法:字符串.index(字符串)
# index方法 value = my_str.index("and") print(f"在字符串{my_str}中查找and,其起始下标是:{value}") 运行效果: 在字符串hello and python中查找and,其起始下标是:6
(2)字符串的替换
语法:字符串.replace(字符串1,字符串2)
功能:将字符串内的全部:字符串1,替换为字符串2
注意:不是修改字符串本身,而是得到一个新的字符串
# replace方法 new_my_str = my_str.replace("h", "--") print(f"将字符串{my_str},进行替换操作后,得到:{new_my_str}") 运行效果: 将字符串hello and python,进行替换操作后,得到:--ello and pyt--on
3)字符串的分割
语法:字符串.split(分隔符字符串)
功能:按照指定的 分隔符字符串,将字符串划分为多个字符串,并存入列表对象中
注意:字符串本身不变,而是得到了一个列表对象
# split方法 my_str = "hello and python" my_str_list = my_str.split(" ") print(f"字符串{my_str}经过split切分后得到:{my_str_list},类型是:{type(my_str_list)}") 运行效果: 字符串hello and python经过split切分后得到:['hello', 'and', 'python'],类型是:<class 'list'>
(4)字符串的规整操作(去前后空格)
语法:字符串.strip()
# strip方法 my_str = " hello and python " new_my_str = my_str.strip() # 不传入参数,去除首尾空格 print(f"字符串{my_str}被strip()后,结果{new_my_str}") 运行效果: 字符串 hello and python 被strip()后,结果hello and python
(5)字符串的规整操作(去前后指定字符串)
语法:字符串.strip(字符串)
Tip:传入的是”12“,其实就是:”1“和”2“都会移除,是按照单个字符的
my_str = "12hello and python21" new_my_str = my_str.strip("12") # 传入参数,去除首尾 指定字符(单个对应) print(f"字符串{my_str}被strip('1,2')后,结果{new_my_str}") 运行效果: 字符串12hello and python21被strip('1,2')后,结果hello and python
(6)统计字符串中某字符串的出现次数
语法:字符串.count(字符串)
# 统计字符串中某字符串的出现次数,count my_str = "hello hi and hipython hi" count = my_str.count("hi") print(f"字符串{my_str}中hi出现的次数是:{count}")
(7)统计字符串的长度
语法:len(字符串)
# 统计字符串的长度,len() my_str = "hello and python" num = len(my_str) print(f"字符串{my_str}的长度是:{num}")
字符串的遍历
同列表、元组一样,字符串也支持while循环和for循环进行遍历
# while-字符串遍历 my_str = "hi python" index = 0 while index < len(my_str): print(my_str[index]) index += 1 # for-字符串遍历 my_str = "=hi python" for element in my_str: print(element)
字符串的特点
作为数据容器,字符串有如下特点:
- 只可以存储字符串
- 长度任意(取决于内存大小)
- 支持下标索引
- 允许重复字符串存在
- 不可以修改(增加或者删除元素等)
- 支持for循环 while循环
Q:字符串为什么被称之为数据容器呢?
字符串可以看作是字符的容器,支持下标索引等特性
- 练习案例:分割字符串
""" 字符串 练习案例 """ my_str = "hi python hihello hello" # 统计字符串内有多少个"hi" sum = my_str.count("hi") print(f"总共有:{sum}个hi") # 将字符串内的空格,全部替换为字符:“--” new_my_str = my_str.replace(" ", "|") print(f"替换之后:{new_my_str}") # 并按照"|"进行字符串分割,得到列表 my_str_list = new_my_str.split("|") print(f"分割之后的列表:{my_str_list}")