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)
posted @ 2020-01-01 21:31  天宇轩-王  阅读(545)  评论(1编辑  收藏  举报