文章目录
1. 元组
-
列表(list),是一个有序且可变的容器,在里面可以存放多个不同类型的元素。
-
元组(tuple),是一个有序且不可变的容器,在里面可以存放多个不同类型的元素。
我的儿子永远不可能换成是别人,但我的儿子可以长大
1.1 定义
v1 = (1,2,3)
v2 = ("满江红","流浪地球2")
v3 = (True,1,"aa",[1,2,"bb"])
#建议在元组的最后多加一个逗号
v2 = ("满江红","流浪地球2",)
- 建议在元组的最后多加一个逗号,用于标识他是一个元组。
#当元素中只有一个元素时,系统不会把元素认为是元组
data = (1)
data = (1,)#两者完全不同
#面试题
1.比较值 v1 = (1)和 v2 = 1 和 v3 =(1,)有什么区别?
2.比较值 v1 = ((1),(2),(3))和v2= ((l,),(2,),(3,),)有什么区别?
1.2 独有功能
无
1.3 公共功能
1.3.1 相加
两个元组相加生成一个新的元组
v1 = (1,2,3)
v2 = ("满江红","流浪地球2")
v3 = (True,1,"aa",[1,2,"bb"])
v4 = v1 + v2
print(v4)
#(1, 2, 3, '满江红', '流浪地球2')
1.3.2 相乘
元组*整型,将元组中的元素再生成n份,并创建一个新的列表
v1 = (1,2,3)
v2 = v1 * 3
print(v2)
#(1, 2, 3, 1, 2, 3, 1, 2, 3)
1.3.3 获取长度
v = (1, 2, 3, 1, 2, 3, 1, 2, 3)
print(len(v))
#9
1.3.4 索引
v = (1, 2, 3, 1, 2, 3, 1, 2, 3)
print(v[1])
print(v[2])
print(v[3])
#2
#3
#1
1.3.4 切片、步长
v = (1, 2, 3, 1, 2, 3, 1, 2, 3)
print(v[0:3])
print(v[::-1])
print(v[1:])
print(v[::-2])
# (1, 2, 3)
# (3, 2, 1, 3, 2, 1, 3, 2, 1)
# (2, 3, 1, 2, 3, 1, 2, 3)
#(3, 1, 2, 3, 1)
1.3.5 for循环
- 目前只有str、list、tuple可以被for循环。
v = (1, 2, 3, 1, 2, 3, 1, 2, 3)
for item in v:
print(item)
# 1
# 2
# 3
# 1
# 2
# 3
# 1
# 2
# 3
1.3.6 转换
其他类型转换为元组,使用 tuple(其他类型) ,目前只有字符串和列表可以转换为元组。
name = "弗洛伊德"
print(tuple(name))
#('弗', '洛', '伊', '德')
1.3.7 嵌套
由于元组和列表都可以充当容器,他们内部可以放很多元素,并且也支持元素内的各种嵌套。
t = ("科幻片","战争片","动作片",("火星救援","流浪地球"),("拯救大兵瑞恩","血战钢锯岭"),("警察故事","少林寺"))
print(t[0])
print(t[3][0])
print(t[4][1])
print(t[5][0])
print(t[3][1][0])
# 科幻片
# 火星救援
# 血战钢锯岭
# 警察故事
# 流
1.3.7.1 练习题:判断是否可以实现,如果可以请写代码实现。
li = [ "shift", [ 11,22,(88,99,100,),33],"A",("Nice","Pink",),"GG"]
#1.请将“A”修改成“B"
li[2] = "B"
print(li)
#2.请将("Nice","Nike",)修改为("很好","粉色",)
li[3] = ("很好","粉色",)
print(li)
#3.请将88修改为87
li[1][2] = (87,99,100,)
print(li)
#4.请将"GG”删除,然后再在列表第0个索引位置插入“奥利给"
li.remove("GG")
#li.pop(len(li)-1)
print(li)
li.insert(0,"奥利给")
print(li)