# 元祖
# tuple 和 list 相似,本质也是一个数组,但是空间大小固定。不同于一般数组,Python 的 tuple 做了许多优化,来提升在程序中的效率。
#
# 举个例子,为了提高效率,避免频繁的调用系统函数 free 和 malloc 向操作系统申请和释放空间,tuple 源文件中定义了一个 free_list
#
# 所有申请过的,小于一定大小的元组,在释放的时候会被放进这个 free_list 中以供下次使用。也就是说,如果以后需要再去创建同样的 tuple,Python 就可以直接从缓存中载入。
#
# 元组内置方法
# upt = (4,5,8,4,5,454,5)
# 创建空元组 ()
# tup1 = ()
# print(tup1)
# 访问元组
# 元组可以使用下标索引来访问元组中的值
# print(upt[0])
# 修改元组
# 元组中的元素值是不允许修改的,但我们可以对元组进行连接组合
# upt1 = ('sa','sa')
# print(upt + upt1)
# 修改元组
# 元组中的元素值是不允许修改的,但我们可以对元组进行连接组合
# del upt
# 元组内置函数
# len() 求元祖的长度
# print(len(upt))
# max 求元祖的最大值
# print(max(upt))
# min(tuple) 求该元祖的最小值
# print(min(upt))
# tuple(iterable)
# 将可迭代系列转换为元组:
# list1 = [1,4]
# print(tuple(list1))
# 关于元祖是不可变的
# lick =upt[0]
# print(id(lick))
# print(id(upt))
# 打印如下:
# 2575307440464
# 2575313160992
# 对比下 内存地址是不同的 说名他在python中 规定的是不允许元祖发生改变
# 如果元祖发生的改变 他就会在内存空间中重新开辟一块空间来存放 改变后的元祖 ; 他与原数据已经没有任何关系了