文章目录
十四、 容器的通用操作(str-set-list-tuple)
1. str-set-list-tuple四者类型间转换
- 转换函数
-
str()
:转换成字符串 -
list()
:转换成list -
set()
:转换成集合 -
tuple()
:转换成元组
- 转换关系 (存疑,待补充)
- list <–> tuple
- list --> str
- str --> list (这里是原样输出,不会进行拼接,与join(listA)不一样)
- str --> set
2. 运算符
运算符 | Python 表达式 | 结果 | 描述 | 支持的数据类型 |
---|---|---|---|---|
+ | [1, 2] + [3, 4] | [1, 2, 3, 4] | 合并 | 字符串、列表、元组 |
* | [“Hi!”] * 4 | [‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’] | 重复 | 字符串、列表、元组 |
in | 3 in (1, 2, 3) | True | 元素是否存在 | 字符串、列表、元组、字典 |
not in | 4 not in (1, 2, 3) | True | 元素是否不存在 | 字符串、列表、元组、字典 |
> >= == < <= | (1, 2, 3) < (2, 2, 3) | True | 元素比较 | 字符串、列表、元组 【字典不能比较大小】 |
注意
-
in
在对 字典 操作时,判断的是 字典的键 -
in
和not in
被称为 成员运算符
成员运算符
成员运算符用于 测试 序列中是否包含指定的 成员
运算符 | 描述 | 实例 |
---|---|---|
in | 如果在指定的序列中找到值返回 True,否则返回 False |
3 in (1, 2, 3) 返回 True
|
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False |
3 not in (1, 2, 3) 返回 False
|
注意:在对 字典 操作时,判断的是 字典的键
数学运算符
\1. +:用于拼接两个容器
\2. +=:用原容器与右侧容器拼接,并重新绑定变量
\3. *:重复生成容器元素
\4. *=:用原容器生成重复元素, 并重新绑定变量
\5. < <= > >= == !=:依次比较两个容器中元素,一但不同则返回比较结果。
注意
- 字符串 比较符合以下规则: “0” < “A” < “a”
成员运算符
\1. 语法:
数据 in 序列
数据 not in 序列
\2. 作用:
如果在指定的序列中找到值,返回bool类型。
3. 索引 index
作用:定位单个容器元素。
语法:容器[整数]
说明:
正向索引从0开始,第二个索引为1,最后一个为len(s)-1。
反向索引从-1开始,-1代表最后一个,-2代表倒数第二个,以此类推,第一个是-len(s)。
4. 切片 slice
作用:
定位多个容器元素。
语法:
容器[开始索引:结束索引:步长]
说明:
结束索引不包含该位置元素
步长是切片每次获取完当前元素后移动的偏移量
开始、结束和步长都可以省略
描述 | Python 表达式 | 结果 | 支持的数据类型 |
---|---|---|---|
切片 | “0123456789”[::-2] | “97531” | 字符串、列表、元组 |
- 切片 使用 索引值 来限定范围,从一个大的 字符串 中 切出 小的 字符串
- 列表 和 元组 都是 有序 的集合,都能够 通过索引值 获取到对应的数据
- 字典 是一个 无序 的集合,是使用 键值对 保存数据
5. Python 内置函数
Python 包含了以下内置函数:
函数 | 描述 | 备注 |
---|---|---|
len(item) | 计算容器中元素个数 即:返回序列的长度 |
|
del(item) | 删除变量 | del 有两种方式:一种是关键字,一种是函数 |
max(item) | 返回容器中元素最大值 | 如果是字典,只针对 key 比较 |
min(item) | 返回容器中元素最小值 | 如果是字典,只针对 key 比较 |
sum(item) | 返回序列中所有元素的和 | 元素必须是数值类型 |
Python 3.x 取消了 cmp 函数 |
6. 完整的 for 循环语法
- 在
Python
中完整的for 循环
的语法如下:
for 变量 in 集合:
循环体代码
else:
没有通过 break 退出循环,循环结束后,会执行的代码
应用场景
- 在 迭代遍历 嵌套的数据类型时,例如 一个列表包含了多个字典
- 需求:要判断 某一个字典中 是否存在 指定的 值
- 如果 存在,提示并且退出循环
- 如果 不存在,在 循环整体结束 后,希望 得到一个统一的提示
students = [
{"name": "阿土",
"age": 20,
"gender": True,
"height": 1.7,
"weight": 75.0},
{"name": "小美",
"age": 19,
"gender": False,
"height": 1.6,
"weight": 45.0},
]
find_name = "阿土"
for stu_dict in students:
print(stu_dict)
# 判断当前遍历的字典中姓名是否为find_name
if stu_dict["name"] == find_name:
print("找到了")
# 如果已经找到,直接退出循环,就不需要再对后续的数据进行比较
break
else:
print("没有找到")
print("循环结束")