Python 字符串与列表核心操作全解:从独有功能到实战场景
一、字符串 (STR) 独有功能
-
特点: 每种数据类型形态不同,且内部有独有功能。字符串通常用单引号、双引号或三引号包裹。
-
核心功能:
-
大小写转换:
upper()
(变大写),lower()
(变小写)。 -
判断开头/结尾:
startswith()
(判断是否以某个字符串开头),endswith()
(判断是否以某个字符串结尾)。 -
分割/拼接:
split()
(按指定字符切割成列表),join()
(将列表元素按指定字符连接成字符串)。 -
替换:
replace()
(替换字符串中的指定子串)。 -
判断数字:
isdecimal()
(判断字符串是否只包含数字字符)。
-
-
重要特性: 上述功能都会生成新的字符串值,而不改变原始字符串。
-
新增功能:去除空白
strip()
-
作用: 移除字符串两端的空白字符(空格、制表符、换行符等)。
-
场景: 数据比较(
"123"
与"123 "
不等),用户输入数据清理(用户名、密码)。 -
变种:
lstrip()
(去除左侧空白),rstrip()
(去除右侧空白)。 -
注意:
strip()
无法去除字符串内部的空白(需用replace()
替换空格为""
)。 -
示例应用: 用户登录时对用户名/密码输入进行
strip()
处理,确保数据准确性。
-
-
其他功能: 字符串还有许多不常用功能,可通过
STR
后按Ctrl/Cmd + 左键
查看源码。
二、字符串 (STR) 公共功能
这些功能不仅字符串有,其他数据类型也可能具备。
-
获取长度:
len()
-
作用: 获取字符串包含的字符数量。
-
示例:
len("中国联通")
结果为 4。
-
-
索引与取值:
[]
-
作用: 通过位置(下标)访问字符串中的单个字符。
-
正向索引: 从 0 开始,逐一递增 (
name[0]
为第一个字符)。 -
反向索引: 从 -1 开始,逐一递减 (
name[-1]
为最后一个字符)。 -
循环字符串:
-
for item in name:
(最常用,直接遍历每个字符)。 -
while
循环 (通过手动维护索引index
和len()
间接遍历)。 -
for i in range(len(name)):
(遍历索引,适合同时需要索引和字符的场景)。
-
-
嵌套取值: 当通过索引取到的值本身也是可索引的类型(如字符串),可以继续通过索引获取更深层次的字符。
-
-
切片:
[start:end:step]
-
作用: 从字符串中截取一个连续的子序列。
-
规则:
start
包含,end
不包含 (前取后不取)。 -
省略:
start
省略表示从头开始,end
省略表示到尾部结束。 -
步长(step): 可选,指定取值间隔(默认为 1)。
-
-
包含判断:
in
-
作用: 判断一个子字符串是否包含在另一个字符串中。
-
示例:
"中国" in text
返回True
或False
。 -
场景: 过滤评论内容、文件行内容判断等。
-
三、练习与实践建议
-
核心: 熟能生巧,切勿死记硬背。多动手练习,遇到问题时翻看笔记。
-
练习题目示例 (附解答思路):
-
提取用户输入文本中的所有数字(可利用
isdecimal()
及字符串拼接或列表append()
后join()
)。 -
查找指定路径下所有
.mp4
后缀的文件(引入import os
,os.listdir()
,rsplit()
获取文件扩展名)。 -
判断字符串是否包含某个子序列 (
in
操作符)。
-
四、列表 (LIST) 知识点
列表是另一种常见的容器型数据类型。
-
特点:
-
用
[]
定义,元素之间用逗号分隔。 -
有序: 元素有固定顺序。
-
可存储混合类型: 可包含字符串、数字、甚至其他列表等。
-
动态可变: 可增加或删除元素。
-
-
重要特性: 列表的独有功能通常会直接修改原始列表,而非生成新列表(与字符串不同)。
五、列表 (LIST) 独有功能
-
追加元素:
append()
-
作用: 将一个元素添加到列表的末尾。
-
示例应用: 用户注册功能(将新注册的用户名添加到用户列表中)。
-
-
插入元素:
insert(index, element)
-
作用: 将一个元素插入到列表的指定索引位置。原位置及之后元素后移。
-
示例应用: 用户排队中,VIP用户插队到最前面。
-
注意: 插入前可对输入进行校验(如去除空白
strip()
,判断是否为空字符串,防止无效数据)。if name:
可判断字符串是否为空。
-
-
删除元素:
remove(element)
或del list[index]
-
remove(element)
:-
作用: 删除列表中指定值的第一个匹配项。
-
注意: 如果元素不存在,会报错。删除前建议用
if element in list:
进行判断。
-
-
del list[index]
:-
作用: 删除列表中指定索引位置的元素。
-
注意: 删除后,后续元素的索引会发生变化。
-
-
示例应用: 抽奖小程序(抽中后从员工列表中移除,防止重复中奖)。可结合
random.choice()
随机抽取元素。
-
-
清空列表:
clear()
-
作用: 移除列表中的所有元素,使其变为空列表。
-
-
反转列表:
reverse()
-
作用: 将列表中的元素顺序原地反转。
-
六、列表 (LIST) 公共功能
与字符串类似,列表也支持以下公共功能:
-
获取长度:
len()
(获取列表元素数量)。 -
索引与取值:
[]
(通过索引访问列表中的单个元素)。-
列表也支持正向索引(0开始)和反向索引(-1开始)。
-
重要: 列表元素本身如果也是列表或其他可索引类型,可进行多重索引取值(如
user_list[1][0]
)。
-
-
切片:
[start:end:step]
(截取列表的一个子序列)。 -
循环列表:
-
for item in list:
(最常用,直接遍历每个元素)。 -
for i in range(len(list)):
(遍历索引,适合同时需要索引和元素的场景)。
-
-
包含判断:
in
(判断某个元素是否包含在列表中)。
七、列表 (LIST) 案例
-
多层嵌套列表取值:
-
示例结构:
user_list = [['爱丽丝', '123'], ['艾瑞克', '666']]
-
通过
for item in user_list:
遍历,item
仍是列表。 -
再通过
item[0]
获取用户名,item[1]
获取密码。
-
-
商品选择功能:
-
展示商品列表:利用
for i in range(len(goods_list))
同时获取索引和商品名,格式化输出。 -
用户选择:
input()
获取索引,并进行严格校验:-
是否为数字 (
isdecimal()
)。 -
转换为整数 (
int()
)。 -
是否在有效索引范围 (
>= 0
且< len(list)
)。
-
-
根据合法索引获取并输出对应商品。
-
-
用户注册功能:
-
定义空列表
user_list = []
。 -
循环让用户输入用户名和密码。
-
对输入进行
strip()
去除空白。 -
判断用户名/密码是否为空,若为空则
continue
继续循环。 -
将用户名和密码组合成一个小列表
[username, password]
。 -
将小列表
append()
到user_list
中。 -
可增加注册数量限制,当
len(user_list)
达到上限时break
终止循环。 -
注册完成后,可再次遍历
user_list
展示所有已注册用户信息(类似多层嵌套取值)。
-