目录
一、列表list
列表是用方括号标注、逗号分隔的一组值,可以(最好不要)包含不同类型的元素:
- 列表内的数据有先后顺序关系
- 列表是可变的容器
1 列表创建
- 字面值
- 构造函数list
list() # 创建一个空的列表,等同于 []
list(可迭代对象) # 用可迭代对象创建一个列表
- 示例
2 列表运算
列表list同字符串str都是序列, 他们的运算规则基本相同。
- + 用于拼接列表
- += 追加(语法:列表 += 可迭代对象)
- * 用于生产重复的列表
- == 、!= 用于比较
- in 、not in 用于判断一个数据元素是否在列表中
3 列表访问
3.1 索引
语法:列表[整型表达式]
3.1.1正向索引
- 与字符串的索引一样,列表索引从 0 开始,第二个索引是 1,依此类推。

3.1.2反向索引
索引也可以从尾部开始,最后一个元素的索引为 -1,往前一位为 -2,以此类推。

3.2 切片
语法:列表[(开始索引b): (终止索引e)(: (步长s))] —— ()里的内容代表可以省略

- 省略开始索引:表示从下标0开始
- 省略终止索引:表示遍历到最后一位元素
- 省略步长:表示默认为1
4 列表操作
4.1 添加数据
- 方法
| 方法名(L代表列表) | 说明 |
|---|---|
| L.append(x) | 向列表的末尾追加单个数据 |
| L.insert(index, obj) | 将某个数据obj 插入到 index这个索引位置的数据之前 |
| L.extend(可迭代对象) | 等同于: L += 可迭代对象 |
注意!!:在 Python 中,列表的 append()、insert() 和 extend() 方法都是原地修改列表,它们的返回值都是 None,而不是修改后的列表。所以当你调用这些方法并打印它们的返回值时,输出的都是 None。
s1 = [1,4,7]
print(s1.append(5)) # 元素5添加在列表s1的末尾,但是不能这么打印。
- 示例1
- 示例2
4.2 修改数据
-
用索引赋值可以改变列表内的数据
列表[整数表达式] = 表达式
-
示例1
- 示例2
4.3 删除数据
- 方法
| 方法 | 说明 |
|---|---|
| L.remove(x) | 从列表L中删除第一次出现在列表中的数据元素,如果x不存在则报错 |
| L.pop() | 根据索引删除元素,并返回该元素。若不提供索引,默认删除最后一个元素 |
| L.clear() | 清空列表 等同于 del L[ : ] |
- 示例1
- 示例2
del语句删除指定位置的数据元素
- 语法
del 变量名 # 删除变量,同时解除变量绑定的对象
del 列表[整数表达式]
- 示例
4.4 复制数据
- copy():表示浅拷贝
- 示例
- 使用
copy模块的deepcopy函数,适用于包含嵌套对象的复杂数据结构。(深拷贝) - 示例
5 常见API
可变容器操作:https://docs.python.org/zh-cn/3.13/library/stdtypes.html#mutable-sequence-types
- 示例:
| 序号 | 函数 | |
|---|---|---|
| 1 | len(list)列表元素个数 | |
| 2 | max(list)返回列表元素最大值 | |
| 3 | min(list)返回列表元素最小值 | |
| 4 | list(seq)将元组转换为列表 |
二、元组tuple
元组用来存储有序数据,多个值用逗号隔开。
- 元组使用小括号 ( ),虽然圆括号可有可无;
- 元组的元素多为异质的,不可变的(immutable),通过解包或索引访问;
- 列表的元素多为同质的,可变的(mutable),可迭代访问;
1 元组创建
- 创建元组的字面值
- 创建元组的函数tuple
2 元组操作
元组是不可变容器。
2.1 删除元组
- 元组中的元素值是不允许删除的,但可以用del删除元组
2.2 查看元组
- 元组的元素访问可以像列表一样通过下标、切片等方式去访问。
2.3 解包技能
- 序列解包:解构赋值,左侧变量与右侧序列元素的数量应相等
3 元组运算
- 元组中的元素值是不允许修改的,但可以对元组进行连接组合
4 元组不可变
- 不可变指的是变量指向的内存中的内容不可变,但是变量的指向是可以改变的。
- 变量是可以重新赋值的
5 元组常用API
通用操作:https://docs.python.org/zh-cn/3.13/library/stdtypes.html#common-sequence-operations
- Python元组包含了以下内置函数
| 序号 | 方法 | 描述 |
|---|---|---|
| 1 | len(tuple) | 返回元组中元素个数。 |
| 2 | max(tuple) | 返回元组中元素最大值。 |
| 3 | min(tuple) | 返回元组中元素最小值。 |
| 4 | tuple(list) | 将列表转换为元组。 |
- 元组常用的方法
| 运算 | 结果 |
|---|---|
| s.index(x[, i[, j]]) | x 在 s 中首次出现项的索引号(索引号在 i 或其后且在 j 之前) |
| s.count(x) | x 在 s 中出现的总次数 |
三、映射(字典)dict
- 字典是可变容器,可存储任意类型对象
- 字典以键(key)-值(value)对的形式进行映射,键值对用冒号分割,对之间用逗号分割
- d = {key1 : value1, key2 : value2, key3 : value3 }
- 字典的数据是无序的
- 字典的键只能用不可变类型,且不能重复
- 字典的数据用键进行索引,不能用整数进行索引
1 字典创建
-
创建字典的字面值
-
以下写法会存在问题
-
字典的创建函数 dict()
2 字典操作
2.1 添加或修改
添加和修改字典的元素
- 语法
字典[键key] = 表达式
键不存在, 就添加
键存在, 会改变键对应的
- 示例
2.2 访问值
字典的键索引
- 语法
字典[键key]
- 示例
- 如果键不存在会报错
2.3 in / not in
in用于判断一个键/值是否存在于字典中,存在返回True, 否则返回False
- 例1
- 例2
2.4 删除元素
能删单一的元素也能清空字典,显式删除一个字典用del命令
- 语法
del 字典[键]
- 示例
3 字典特性
- 不允许同一个键出现两次,否则后一个覆盖前一个
- 键必须不可变,可以用数字、字符串或元组,列表不行
4 字典常用API
- 操作字典的函数:
| 序号 | 函数 | 描述 |
|---|---|---|
| 1 | len(dict) | 计算字典元素个数,即键的总数。 |
| 2 | str(dict) | 输出字典,可以打印的字符串表示。 |
| 3 | type(variable) | 返回输入的变量类型,如果变量是字典就返回字典类型。 |
- 字典的方法:
| 序号 | 函数及描述 |
|---|---|
| 1 | dict.clear()删除字典内所有元素 |
| 2 | dict.copy()返回一个字典的浅复制(跟列表的浅复制是一个道理) |
| 4 | dict.get(key, default=None)返回指定键的值,如果键不在字典中返回 default 设置的默认值 |
| 5 | key in dict如果键在字典dict里返回true,否则返回false |
| 6 | dict.items()以列表返回一个视图对象 |
| 7 | dict.keys()返回一个视图对象 |
| 9 | dict.update(dict2)把字典dict2的键/值对更新到dict里 |
| 10 | dict.values()返回一个视图对象 |
| 11 | pop(key,default)删除字典 key(键)所对应的值,返回被删除的值。 |
四、集合set和固定集合frozenset
集合set和固定集合frozenset
set的元素值必须是不可变的,set中可以存储int、str、tuple等不可变类型,但不能存储 list、dict 等可变类型。
-
集合是可变的容器,固定集合是不可变的集合
-
集合相当于只有键没有值的字典,当然你也可以理解为键和值相等
-
集合内的数据都是唯一的,不可变的
1 集合的创建
注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
- 创建集合的方式
- 创建固定集合frozensets的方式
2 集合操作
官方文档:https://docs.python.org/zh-cn/3.13/library/stdtypes.html#set-types-set-frozenset
2.1 添加元素
将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作。
| 函数 | 描述 |
| s.add( x ) | 添加元素到集合。 |
| s.update( x ) | 添加元素到集合,且参数可以是列表、元组、字典等,x 可以有多个,用逗号分开。 |
2.2 删除元素
| 函数 | 描述 |
| s.remove( x ) | 将元素 x 从集合 s 中移除,不存在会发生错误。 |
| s.discard( x ) | 将元素 x 从集合 s 中移除,不存在也不会发生错误。 |
| s.pop() | 对集合进行无序的排列,然后将这个无序排列集合的左面第一个元素进行删除。 |
2.3 访问与修改
集合是无序的、不可重复的数据结构,不能通过索引来访问其元素。所以也没有对应的修改功能。
TODO:需要通遍历或者迭代器去访问。
2.4 in / not in
x in s 判断元素 x 是否在集合 s 中,存在返回 True,不存在返回 False。
3 常用API
集合的方法
| 方法 | 描述 |
|---|---|
| add() | 为集合添加元素 |
| clear() | 移除集合中的所有元素 |
| copy() | 拷贝一个集合 |
| difference() | 返回多个集合的差集 |
| difference_update() | 移除集合中的元素,该元素在指定的集合也存在。 |
| discard() | 删除集合中指定的元素 |
| intersection() | 返回集合的交集 |
| intersection_update() | 返回集合的交集,并更新到集合。 |
| isdisjoint() | 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。 |
| issubset() | 判断指定集合是否为该方法参数集合的子集。 |
| issuperset() | 判断该方法的参数集合是否为指定集合的子集 |
| pop() | 随机移除元素 |
| remove() | 移除指定元素 |
| symmetric_difference() | 返回两个集合中不重复的元素集合。 |
| symmetric_difference_update() | 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。 |
| union() | 返回两个集合的并集 |
| update() | 给集合添加元素 |
| len() | 计算集合元素个数 |
- 例1
- 例2
注意!!!
可变类型、不可变类型请看续集
本人牛马大学生,更新作品内容较慢,请耐心等待。。。
如有错别字,请勿责怪🌹🌹🌹🌹🌹🌹
♥♥♥感谢体谅♥♥♥


















































dict、集合set和固定集合frozenset&spm=1001.2101.3001.5002&articleId=149230920&d=1&t=3&u=45e3e8c91e124b50990123b9b9255f1d)
8605

被折叠的 条评论
为什么被折叠?



