一、 元组 tuple
# 和列表类似,但是不可变
# 元组的初始化
# 1.初始化元组并放入元素
tuple01 = (1, 2, 3, 4)
# print(tuple01)
# print(type(tuple01))
# 2.如果元组中只有一个元组,在该元素后面加上一个逗号
tuple02 = (1, )
# print(tuple02)
# print(type(tuple02))
# 3.初始化一个元组、序列转元组
# tuple03 = tuple("hello")
tuple03 = tuple([1, 2, 3, 4])
# print(tuple03)
# 元组-查
tuple04 = (1, 2, 3, 4, True, "hello")
# 1.索引
# print(tuple04[4]) # True
# 2.切片
# print(tuple04[2:4]) # 3,4
# 3. tuple.index()
# print(tuple04.index(True)) # 0
# 4. tuple.count()
# print(tuple04.count(1))
# 元组的其它操作
# 1.成员运算
tuple05 = (1, 2, 3, 4, True, "hello")
# print(True in tuple05)
# 2.计算元组的长度
# print(len(tuple05))
# 3.元组和元组相加
# print((1, 2, 3) + (3, 4, 5))
# 4.元组和整型相乘
# print((1, 2, 3) * 2)
### 转换
# # 列表转元组
# print(tuple([1, 2, 3]))
# # 元组转列表
# print(list((1, 2, 3)))
# # 元组转字符串
# print("".join(("abc", "hello", "qwer")))
# # 列表转字符串
# print("".join(["abc", "hello", "qwer"]))
# # 字符串转元组
# print(tuple("hello"))
# # 字符串转列表
# print(list("hello"))
# 元组的打包和拆包
t1 = 10, 20 # 自动打包
# print(t1)
t2 = (1, 2, 3)
a, b, c = t2 # 自动拆包
# print(a, b, c)
# *的特殊用法
e, *f, g = 21, 3, 4, 5, 6
# print(e, f, g)
# 变量交换
v1 = 100
v2 = 200
# 1.使用一个临时变量
# v3 = v1
# v1 = v2
# v2 = v3
# print(v1, v2)
# 2.利用元组的打包和拆包
# v1, v2 = v2, v1
# print(v1, v2)
# 3.
v2 = v1 + v2 # 300
v1 = v2 - v1 # 200
v2 = v2 - v1 # 100
print(v1, v2)