# @Time:2020/12/15 21:09
# @Author:李 祥
# @File:Tuple.py
# @Software:PyCharm
# Tuple(元组) 内容不可变,但是包含可变对象
# 相像列表list
#
tup1 = () # 创建空元组
print(tup1, type(tup1))
tup1 = (50)
tup2 = (50,) # 元组的必备条件为 , 单元素最后,不可省。 多元素可省略
print(tup1, type(tup1))
print(tup2, type(tup2))
tup1 = 50, 60, 70
tup2 = 50,
print(tup1, type(tup1))
print(tup2, type(tup2)) # 创建元组可以不加() 不推荐
# 连接(增)
tup1 = (1, 2, 3)
tup2 = (4, 5, 6)
tup = tup1 + tup2
print(tup, type(tup))
# 删(删除元组对象,不可删内部元素)
tup1 = (1, 2, 3)
print(tup1)
del tup1
print(tup1) # 报错,因为已经删除
# 改 (只能更改内部可变变量)
list1 = [2, 3]
tup1 = (1, list1)
print(tup1)
list1.append(4)
print(tup1)
# 查
tup1 = (1, 2, 3)
print(tup1[0]) # 根据下标访问
print(tup1[::-1]) # 切片
# 循环
tup1 = (1, 2, 3)
for i in tup1:
print(i)
# in not in
tup1 = (1, 2, 3)
if 3 in tup1:
print("true")
else:
print("false")
# 计数 count 最大最小max min 求和 sum 长度 len
# 类比list
# 强制类型转换 tuple()
# 字符串
s = "student"
tup = tuple(s)
print(tup, type(tup))
# 列表
list1 = [1, 2, 3]
tup = tuple(list1)
print(tup, type(tup))
# 生成器对象 (后期详细补充)
s = (i*2 for i in range(5))
print(tuple(s))
补充:
list1 = [2, 3]
tup1 = (1, list1)
print(tup1)
list1 = [2, 3, 4]
print(tup1)
列表更改,但是元组还是[1, [2, 3]]。
tup1保存了list1的地址,第二次访问仍然可以通过地址访问到之前的列表内容。list1第二次赋值,仅仅改变了list1自身指向的内存空间,没有改变tup1已经保存的list1之前的地址