Python数据结构深度实战:字符串操作、列表管理与元组应用详解
一、字符串
1、字符串的定义
一般使用引号来创建字符串。创建字符串很简单,只要为变量分配⼀个值即可。
# 使⽤单引号或双引号定义字符串变量
str1 = 'abcdefg'
str2 = "hello world"
print(type(str1)) # <class 'str'>
print(type(str2)) # <class 'str'>
运行结果为:

name1 = '''I am Tom, Nice to meet you!'''
print(name1)
print(type(name1))
print('-' * 20)
name2 = """I am Jennify,
Nice to meet you!"""
print(name2)
print(type(name2))
运行结果如下:

注意:
三引号形式的字符串支持换行操作。
在Python中,如果存在多个引号,建议
① 单引号放在双引号中
② 双引号放在单引号中。
2、字符串切片
所谓的切片是指对操作的对象截取其中⼀部分的操作。字符串、列表、元组都支持切片操作。
# 左闭右开 (包括开始位置,不包括结束位置)
# 序列名称[开始位置:结束位置]
str1 = "abcdefg"
# 使用切片操作打印字符串str1中索引1到2的字符(不包含索引2)
print(str1[1:4])
运行结果为:

# 序列名称[开始位置下标:结束位置下标:步⻓(步阶)]
str1 = "abcdefg"
# 打印字符串str1中从索引1开始到索引6结束(不包括6),步长为2的子字符串
print(str1[1:6:2])
运行结果如下所示:

注意:
① 不包含结束位置下标对应的数据, 正负整数均可;
② 步长是选取间隔,正数代表从左向右截取,负数代表从右向左截取。默认步长为1。
3、字符串中的查找方法
字符串的查找方法指的是查找子串在字符串中的位置或出现的次数。
1、查找方法
| 函数 | 作用 |
|---|---|
| find() | 检测某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则则返回-1。 |
| index() | 检测某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则则报异常。 |
2、代码实现
# find: 查找字符串中是否包含某个字符,如果包含返回当前字符的下标,如果不存在则返回-1
strs = "abcdefg"
print(strs.find("a")) # 0
print(strs.find("h")) # -1
运行结果:

# index 方法:与find方法类似,但是找不到会报错
strs = "abcdefg"
print(strs.index("a")) # 0
print(strs.index("h")) # 报错
运行结果:

4、字符串的修改方法
1、修改方法
| 函数 | 作用 |
|---|---|
| replace() | 返回替换后的字符串 |
| split() | 返回切割后的列表序列 |
| title() | 所有单词首字母大写 |
| upper()与lower() | 返回全部大写或小写的字符串 |
2、代码实现
replace()方法基本语法:
字符串.replace(要替换的内容, 替换后的内容, 替换的次数-可以省略)
str1 = 'hello linux and hello linux'
# 把字符串中所有linux字符替换为python
print(str1.replace('linux', 'python'))
# 把字符串中的第⼀个linux进⾏替换为python
print(str1.replace('linux', 'python', 1))
# 把and字符串替换为&&
print(str1.replace('and', '&&'))
运行结果:

# 使用replace将=号去掉
strs1 = "username=admin"
# 使用等号("=")作为分隔符对字符串strs1进行分割,并将分割后的结果存储到new_list列表中
new_list = strs1.split("=")
print(new_list)
运行结果:

注意: split()方法返回的是列表类型的数据
str2 = "abc"
# title() 将字符串首字母大写
print(str2.title())
运行结果:

注意: title() 只会将字符串首字母大写,不会将其他字母大写,若其他字母为大写会将其他字母变为小写字母。
str2 = "abC aM"
# title() 只将字符串首字母大写
print(str2.title())
运行结果为:

str2 = "aBc"
# 将字符串所有数据转换成大写
print(str2.upper())
# 将字符串所有数据转换成小写
print(str2.lower())
运行结果为:

5、字符串的判断方法
| 函数 | 作用 |
|---|---|
| isalpha() | 判断字符串是否是字母或者汉字(字符)组成,不能有数字 |
| isdigit() | 判断字符串是否由数字组成 |
| isalnum() | 判断字符串是否由字符和数字组成 |
代码展示:
str2 = "abc张三"
# isalpha() 判断字符串是否是字母或者汉字(字符)组成,不能有数字
print(str2.isalpha())
str2 = "123张三"
# isdigit() 判断字符串是否由数字(整数)组成
print(str2.isdigit())
str2 = "abc123"
str3 = "12.88"
# isalnum() 判断字符串是否由字符或数字(整数)组成
print(str2.isalnum())
print(str3.isalnum())
运行结果为:

二、列表
列表可以一次存储多个数据且可以为不同的数据类型,其作用是一次性存储多个数据,程序员可以对这些数据进行的操作有:增、删、改、查。
1、查操作
| 函数 | 作用 |
|---|---|
| index() | 指定数据所在位置的下标 |
| count() | 统计指定数据在当前列表中出现的次数 |
| in | 判断指定数据在某个列表序列,如果在返回True,否则返回False |
| not in | 判断指定数据不在某个列表序列,如果不在返回True,否则返回False |
str1 = ["武松", "西门庆", "潘金莲", "武大郎", "西门庆"]
# 列表中的index()方法:返回列表数据的下标
# 找不到会报错,并且列表中没有find方法
print(str1.index("武大郎"))
运行效果如下:

注意:index()返回指定数据所在位置的下标,下标是从0开始的
str1 = ["武松", "西门庆", "潘金莲", "武大郎", "西门庆"]
# 列表中的count():返回列表中某个数据出现的次数
print(str1.count("西门庆"))
运行结果为:

count():返回列表中某个数据出现的次数
# in: 判断某个数据是否包含在其中
str2 = "abcdefg"
if "h" in str2:
print("包含")
else:
print("不包含")
for i in str1:
if "潘" in i:
print("包含这个字符")
运行结果:

2、增操作
| 函数 | 作用 |
|---|---|
| append() | 增加指定数据到列表中 |
| extend() | 列表结尾追加数据,如果数据是一个序列,则将这个序列的数据逐一添加到列表 |
| insert() | 指定位置新增数据 |
names = ['孙悟空', '唐僧', '猪⼋戒']
# 在列表的尾部追加⼀个元素"沙僧"
names.append('沙僧')
# 打印列
print(names)
运行结果:

注意: 列表追加数据的时候,直接在原列表里面追加了指定数据,即修改了原列表,故列表为可变类型数据。
# extend() :向列表中追加数据,追加的数据是一个列表
str1 = ["武松", "西门庆", "潘金莲"]
str2 = ["林冲", "鲁智深", "孙二娘"]
str1.extend(str2)
print(str1)
运行结果:

注意: extend方法比较适合于两个列表进行元素的合并操作
# insert(): 向列表中指定位置插入数据
str1 = ["张三", "李四"]
str1.insert(0, "王五")
print(str1)
运行结果:

3、删操作
| 函数 | 作用 |
|---|---|
| del 列表[索引] | 删除列表中的某个元素 |
| pop() | 删除指定下标的数据(默认为最后⼀个),并返回该数据 |
| remove() | 移除列表中某个数据的第⼀个匹配项 |
# del:关键词 根据下标进行数据删除
str1 = ["张三", "李四", "王五"]
del str1[0]
print(str1)
运行结果:

注意: del根据下标进行数据删除
# pop方法:根据下标进行删除
str1 = ["张三", "李四", "王五"]
str1.pop(1)
print(str1)
运行结果:

注意: pop()函数是删除指定下标的元素,如果不填写下标,默认删除最后⼀个。其返回结果:就是删除的这个元素
# remove方法:根据元素值进行删除
str1 = ["张三", "李四", "王五"]
str1.remove("李四")
print(str1)
运行结果:

注意: remove()根据元素值删除匹配的元素
4、 改操作
| 函数 | 作用 |
|---|---|
| 列表[索引] = 修改后的值 | 修改列表中的某个元素 |
| reverse() | 将数据序列进行倒叙排列 |
| sort() | 对列表序列进行排序 |
# 根据列表的下标进行数据更改
str1 = ["张三", "李四", "王五"]
str1[2] = "赵六"
print(str1)
运行结果:

# reverse:将列表倒过来
str1 = [30, 10, 2, 3, 4]
str1.reverse()
print(str1)
运行结果:

# sort:排序
str1 = [30, 10, 2, 3, 4]
str1.sort()
print(str1)
print(f"当前列表的长度:{len(str1)}")
运行结果:

三、元组
1、元组简介
当我们想要存储多个数据且数据不允许更改时可以使用元组,元组可以存储多个数据且元组内的数据是不能修改的。定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不同的数据类型。注意:如果定义的元组只有⼀个数据,那么这个数据后面也要添加逗号,否则数据类型为唯一的这个数据的数据类型。
2、元组的相关操作方法
| 函数 | 作用 |
|---|---|
| 元组[索引] | 根据索引下标查找元素 |
| index() | 查找某个数据,如果数据存在则返回对应的下标,否则报错 |
| count() | 统计某个数据在当前元组出现的次数 |
| len() | 统计元组中数据的个数 |
nums = (10, 20, 30)
print(nums[2])
运行结果:

str1 = ("张三", "李四", "王五", "赵六", "李七")
# index:返回当前元素的下标
print(str1.index("王五"))
运行结果:

str1 = ("王五", "李四", "王五", "赵六", "王五")
# count:统计某个元素出现的次数
print(str1.count("王五"))
运行结果:

str1 = ("王五", "李四", "王五", "赵六", "王五")
# len:查看数据的总数
print(len(str1))
运行结果:

更多推荐
所有评论(0)