1. 元组
元组跟 列表 类似,只是不支持动态添加、删除元素,以及不能修改元素。
1.1 元组的初始化
元组需要用小括号括起来,中间的元素用逗号隔开。
注意:如果初始化只包含一个元素的元组,需要在该元素后添加逗号。
1 | a = () # 初始化一个空元组 |
1.2 元组的解包
1 | t = 12345, 54321, "Hello!" # 初始化一个元组 |
所以,判断语句中的交换操作,本质上是元组的解包:
1 | a, b = 3, 4 # 将元组(3, 4)解包,分别赋值给a、b |
同样地,函数中函数返回多个值,本质上也是返回了一个元组:
1 | def calc(x, y): |
1.3 元组的其他操作
元组的下标访问元素、循环遍历、切片、加法和乘法运算等操作,都与列表相同。
2. 集合
集合是Python中最常用的数据结构之一,用来存储不同元素。
注意,集合中的元素是无序的。
2.1 集合的初始化
创建集合用花括号或set()
函数。注意:创建空集合只能用set()
,不能用{}
,因为{}
创建的是空字典,会在下一小节里介绍字典。
集合常见的初始化方式:
1 | basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'} # 会自动去除重复元素 |
2.2 集合的常用操作
假设a
表示一个集合。
1 | len(a) 返回集合中包含的元素数量。 |
例如:
1 | a = {1, 2, 3} |
2.3 使用for
循环遍历集合
类似于列表,集合也可以用for ... in ...
的形式遍历。例如:
1 | a = {1, 2, 3} |
3. 字典
字典是Python中最常用的数据结构之一,用来存储映射关系。
注意,字典中的元素是无序的。
不同于列表,字典是以key
进行索引的,可以将每个key
映射到某个value
。key
可以是任何不可变类型,常用可以作为key
的类型有数字和字符串。列表因为是可变的,所以不能作为key
。value
可以是任意类型。
3.1 字典的初始化
创建字典用花括号或dict()
函数。
1 | tel = {'jack': 4098, 'sape': 4139} # 创建一个字典 |
3.2 字典的常用操作
假设a
表示一个字典。
len(a)
:返回字典中的元素对数。a[x]
:获取关键字x
对应的值,如果x
不存在,会报异常。a.get(x)
:获取关键字x
对应的值,如果x
不存在,会返回None
,不会报异常。a.get(x, y)
:获取关键字x
对应的值,如果x
不存在,会返回默认值y
,不会报异常。a[x] = y
:在字典中插入一对元素,如果关键字x
已存在,则将它之前映射的值覆盖掉。del a[x]
:删除关键字x
对应的元素对,如果x
不存在,会报异常。x in a
:检查字典中是否存在关键字x
。x not in a
:检查字典中是否不存在关键字x
。a.keys()
:返回字典的所有key
。a.values()
:返回字典的所有value
。a.items()
:返回字典的所有由key
和value
组成的元组。
例如:
1 | a = {'abc': 1, 'def': 2, 'python': 3} # 初始化一个字典 |
3.3 使用for
循环遍历字典
类似于列表,字典也可以用for ... in ...
的形式遍历。例如:
1 | a = {'abc': 1, 'def': 2, 'python': 3} # 初始化一个字典 |
4. 作业扩展
map()
也可以用for ... in ...
的形式遍历。例如:for x in map(int, input().split())
可以遍历一行内用空格隔开的每个整数。