一、基本概念———-即不可变列表
注意:
- 用小括号表示
- 有tuple函数可以将其他类型转化为元组类型
- 一个元素也需要加逗号
- 元组定义后不可修改,不可删除
- 元组可以存放多种类型
- 有序的
- 访问方法:[a : b : c] 即访问从[a, b)每隔c位访问一次
元组和列表区别: 不可变,没有函数,访问快,开销小
二、元组创建及生成器表达式
- 用()创建
- 用 ,号创建,一个元素也得加,号
注意 :
- 用生成器表达式得到的元组只能使用一次,用完即为空元组
- 也可以用next()函数来访问下一个元素,同样,用完就自动释放了
- 可以通过for循环遍历
- end = ’ ',表示按空格隔开
- 普通创建方法得到的元组不会自动释放
三、元组和列表切片
注意:
- [start: end: step],三个参数,开始,结束,步长,范围为[start, end)每隔step步;
参考运行:
四、元组的解包
解包指就是将元组当中每一个元素都赋值给一个变量
-
在对一个元组进行解包时,变量的数量必须和元组中的元素的数量一致
1
2
3
4
5
6
7
8
9
10
11
12 1my_tuple = 10 , 20 , 30 , 40
2
3# 元组的解包(解构)
4# 解包指就是将元组当中每一个元素都赋值给一个变量
5a,b,c,d= my_tuple
6
7print("a =",a)
8print("b =",b)
9print("c =",c)
10print("d =",d)
11
12
-
利用元组解包进行元素交换
1
2
3
4
5
6
7
8
9
10 1a = 100
2b = 300
3# print(a , b)
4
5# 交互a 和 b的值,这时我们就可以利用元组的解包
6a , b = b , a
7
8# print(a , b)
9
10
-
也可以在变量前边添加一个*,这样变量将会获取元组中所有剩余的元素
1
2
3
4
5
6
7
8
9
10
11
12 1my_tuple = 10 , 20 , 30 , 40
2a , b , *c = my_tuple
3a , *b , c = my_tuple
4print('a =',a,' b =',b,' c =',c)
5*a , b , c = my_tuple
6a , b , *c = [1,2,3,4,5,6,7]
7a , b , *c = 'hello world'
8# 不能同时出现两个或以上的*变量
9# *a , *b , c = my_tuple SyntaxError: two starred expressions in assignment
10print('a =',a,' b =',b,' c =',c)
11
12
运行结果: