python基础——元组 tuple
文章目录
- 一、什么是元组
- 二、创建元组
- 2.1、使用 () 来创建元组
- 2.2、省略括号,创建元组
- 三、元组的解包(解构)
- 3.1、利用元组的解包,交互a 和 b的值
- 3.2、在变量前边添加一个*,变量将会获取元组中所有剩余的元素
- 1)第一个变量 加 `*`
- 2)中间变量 加 `*`
- 3)最后一个变量 加 `*`
- 4)注意事项:
- 3.3、列表的解包(与元组无关):
- 3.4、字符串的解包:
一、什么是元组
元组是一个不可变的序列
它的操作的方式基本上和列表是一致的
所以你在操作元组时,就把元组当成是一个不可变的列表就ok了
一般当我们希望数据不改变时,就使用元组,其余情况都使用列表
二、创建元组
2.1、使用 () 来创建元组
创建空元组
my_tuple = ()
print(my_tuple,type(my_tuple))
运行结果:
<class 'tuple'>
创建了一个5个元素的元组
my_tuple = (1,2,3,4,5)
print(my_tuple,type(my_tuple))
运行结果:
(1, 2, 3, 4, 5) <class 'tuple'>
元组是不可变对象,不能尝试为元组中的元素重新赋值
my_tuple[3] = 10
print(my_tuple[3])
运行报错了:
TypeError: 'tuple' object does not support item assignment
2.2、省略括号,创建元组
注意事项:
- 当元组不是空元组时,括号可以省略;
省略括号后,元组只有一个值时,它边至少要有一个
,
。my_tuple = 10,20,30,40
print(my_tuple , type(my_tuple))
运行结果:
(10, 20, 30, 40) <class 'tuple'>
```
只有一个值时,必须加上逗号(,)
```python
my_tuple1 = 40
my_tuple2 = 40,
print(my_tuple , type(my_tuple))
print(my_tuple2 , type(my_tuple2))
运行结果:
40 <class 'int'>
(40,) <class 'tuple'>
说明:不加逗号是int, 加上逗号是元组。
三、元组的解包(解构)
解包指就是将元组当中每一个元素都赋值给一个变量。
my_tuple = 10 , 20 , 30 , 40
a,b,c,d = my_tuple
print("a =",a)
print("b =",b)
print("c =",c)
print("d =",d)
运行结果:
a = 10
b = 20
c = 30
d = 40
3.1、利用元组的解包,交互a 和 b的值
a = 100
b = 300
print('交换值前:','a=',a ,' b=', b)
a , b = b , a
print('交换值后:','a=',a ,' b=', b)
运行结果:
交换值前: a= 100 b= 300
交换值后: a= 300 b= 100
在对一个元组进行解包时,变量的数量必须和元组中的元素的数量一致
3.2、在变量前边添加一个*,变量将会获取元组中所有剩余的元素
1)第一个变量 加 *
my_tuple = 10 , 20 , 30 , 40
*a , b , c = my_tuple
print('a =',a)
print('b =',b)
print('c =',c)
运行结果:
a = [10, 20]
b = 30
c = 40
注意: 加 *
的变量 a 的类型是 列表。(即使是一个值,也是列表)
2)中间变量 加 *
my_tuple = 10 , 20 , 30 , 40
a , *b , c = my_tuple
print('a =',a)
print('b =',b)
print('c =',c)
运行结果:
a = 10
b = [20, 30]
c = 40
注意: 加 *
的变量 a 的类型是 列表。(即使是一个值,也是列表)
3)最后一个变量 加 *
my_tuple = 10 , 20 , 30 , 40
a , b , *c = my_tuple
print('a =',a)
print('b =',b)
print('c =',c)
运行结果:
a = 10
b = 20
c = [30, 40]
注意: 加 *
的变量 a 的类型是 列表。(即使是一个值,也是列表)
4)注意事项:
不能同时出现两个或以上的 *
变量,会抛异常:
*a , *b , c = my_tuple
异常:
SyntaxError: two starred expressions in assignment
3.3、列表的解包(与元组无关):
a , b , *c = [1,2,3,4,5,6,7]
print('a =',a)
print('b =',b)
print('c =',c)
3.4、字符串的解包:
a , b , *c = 'hello world'
print('a =',a)
print('b =',b)
print('c =',c)
还没有评论,来说两句吧...