Python中的元组
学完元组就相当于Java的
1 元组的定义
-
Tuple
(元组)与列表类似,不同之处在于元组的 元素不能修改-
元组 表示多个元素组成的序列
-
元组 在
Python
开发中,有特定的应用场景
-
-
用于存储 一串 信息,数据 之间使用
,
分隔 -
元组用
()
定义 -
元组的 索引 从
0
开始-
索引 就是数据在 元组 中的位置编号
-
info_tuple = ("zhangsan", 18, 1.75)
创建空元组
info_tuple = ()
元组中 只包含一个元素 时,需要 在元素后面添加逗号
info_tuple = (50, )
2 元组常用操作
-
在
ipython3
中定义一个 元组,例如:info = ()
-
输入
info.
按下TAB
键,ipython
会提示 元组 能够使用的函数如下:
info.count info.index
有关 元组 的 常用操作 可以参照上图练习
3 循环遍历
-
取值 就是从 元组 中获取存储在指定位置的数据
-
遍历 就是 从头到尾 依次 从 元组 中获取数据
# for 循环内部使用的变量 in 元组 for item in info: # 循环内部针对元组元素进行操作 print(item)
在
Python
中,可以使用for
循环遍历所有非数字型类型的变量:列表、元组、字典 以及 字符串提示:在实际开发中,除非 能够确认元组中的数据类型,否则针对元组的循环遍历需求并不是很多
4 应用场景
-
尽管可以使用
for in
遍历 元组 -
但是在开发中,更多的应用场景是:
-
函数的 参数 和 返回值,一个函数可以接收 任意多个参数,或者 一次返回多个数据
-
有关 函数的参数 和 返回值,在后续 函数高级 给大家介绍
-
-
格式字符串,格式化字符串后面的
()
本质上就是一个元组 -
让列表不可以被修改,以保护数据安全
-
info = ("zhangsan", 18) print("%s 的年龄是 %d" % info)
元组和列表之间的转换
-
使用
list
函数可以把元组转换成列表
list(元组)
-
使用
tuple
函数可以把列表转换成元组
tuple(列表)
元组内置函数
Python元组包含了以下内置函数
序号 | 方法及描述 | 实例 |
---|---|---|
1 | len(tuple) 计算元组元素个数。 |
>>> tuple1 = ('Google', 'Runoob', 'Taobao')
>>> len(tuple1)
3
>>>
|
2 | max(tuple) 返回元组中元素最大值。 |
>>> tuple2 = ('5', '4', '8')
>>> max(tuple2)
'8'
>>>
|
3 | min(tuple) 返回元组中元素最小值。 |
>>> tuple2 = ('5', '4', '8')
>>> min(tuple2)
'4'
>>>
|
4 | tuple(seq) 将列表转换为元组。 |
>>> list1= ['Google', 'Taobao', 'Runoob', 'Baidu']
>>> tuple1=tuple(list1)
>>> tuple1
('Google', 'Taobao', 'Runoob', 'Baidu'
|
下面为测试的代码,感觉Python的解包还是挺方便的
# 元组 tuple # 元组是一个不可变的序列 # 它的操作的方式基本上和列表是一致的 # 所以你在操作元组时,就把元组当成是一个不可变的列表就ok了 # 一般当我们希望数据不改变时,就使用元组,其余情况都使用列表 # 创建元组 # 使用()来创建元组 my_tuple = () # 创建了一个空元组 # print(my_tuple,type(my_tuple)) # <class 'tuple'> my_tuple = (1, 2, 3, 4, 5) # 创建了一个5个元素的元组 # 元组是不可变对象,不能尝试为元组中的元素重新赋值 # my_tuple[3] = 10 TypeError: 'tuple' object does not support item assignment # print(my_tuple[3]) # 当元组不是空元组时,括号可以省略 # 如果元组不是空元组,它里边至少要有一个, my_tuple = 10, 20, 30, 40 my_tuple = 40, # print(my_tuple , type(my_tuple)) 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 = 100 b = 300 # print(a , b) # 交互a 和 b的值,这时我们就可以利用元组的解包 a, b = b, a # print(a , b) my_tuple = 10, 20, 30, 40 # 在对一个元组进行解包时,变量的数量必须和元组中的元素的数量一致 # 也可以在变量前边添加一个*,这样变量将会获取元组中所有剩余的元素 a, b, *c = my_tuple a, *b, c = my_tuple *a, b, c = my_tuple a, b, *c = [1, 2, 3, 4, 5, 6, 7] a, b, *c = 'hello world' # 不能同时出现两个或以上的*变量 # *a , *b , c = my_tuple SyntaxError: two starred expressions in assignment print('a =', a) print('b =', b) print('c =', c)