15 数据容器小结
15.1 各种数据容器的特点
比较项 | 列表-List | 元组-Tuple | 字符串-Str | 集合-Set | 字典-Dict |
---|---|---|---|---|---|
是否支持多个元素 | Y | Y | Y | Y | Y |
元素类型 | 任意 | 任意 | 只支持字符 | 任意 | Key通常是字符串或数字,Value任意 |
是否支持元素重复 | Y | Y | Y | N | Key不能重复,Value可以重复 |
是否有序 | Y | Y | Y | N | 3.6版本之前是无序的 3.6版本之后支持有序 |
是否支持索引 | Y | Y | Y | N | N |
可变性 | Y | N | N | Y | Y |
使用场景 | 可修改、 可重复的多个数据 | 不可修改、 可重复的多个数据 | 字符串 | 不可重复的多个数据 | 通过关键字查询对应数据的需求 |
定义符号 | [] | () | ""或’’ | {} | {key: value} |
15.2 通用序列操作
操作 | 结果 |
---|---|
x in s | 如果 s 中的某项等于 x ,则结果为True,否则为False |
x not in s | 如果 s 中的某项等于 x ,则结果为False,否则为True |
s + t | s 与 t 拼接 |
s * n或n * s | 相当于 s 与自身进行 n 次拼接 |
s[i] | s 的第 i 项,起始为0 |
s[i:j] | s 从 i 到 j 的切片 |
s[i:j:k] | s 从 i 到 j 步长为 k 的切片 |
len(s) | s 的长度 |
min(s) | s 的最小项 |
max(s) | s 的最大项 |
s.index(x[, i[, j]]) | x 在 s 中首次出现项的索引号(索引号在 i 或其后,且在 j 之前) |
s.count(x) | x 在 s 中出现的总次数 |
15.3 通用的转换操作
操作 | 结果 |
---|---|
list([iterable]) | iterable 可以是序列、支持迭代的容器或其它可迭代对象,也就是将指定的容器转成列表 |
str(容器) | 将自定的容器转成字符串 |
tuple([iterable]) | iterable 可以是序列、支持迭代的容器或其它可迭代对象,也就是将指定的容器转成元组 |
set([iterable]) | iterable 可以是序列、支持迭代的容器或其它可迭代对象,也就是将指定的容器转成集合 |
15.4 List、Tuple、Set和Dict的传参机制
-
Python的数据类型:
- 不可变数据类型:数值类型(int、float)、bool(布尔)、string(字符串)、tuple(元组)
- 可变数据类型:list(列表)、set(集合)、dict(字典)
-
可变数据类型:当该数据类型的变量的值发生了变化,如果它的内存地址不变,那么这个数据类型就是可变数据类型;
-
不可变数据类型:当该数据类型的变量的值发生了变化,如果它的内存地址改变了,那么这个数据类型就是不可变数据类型。
16 断点调试Debug
- F7:跳入函数内;
- F8:逐行执行代码;
- Shift+F8:跳出方法;
- F9:执行到下一个断点。