1-4-06 数据类型-元组(tuple)
1. 定义
列表(list),是一个有序且可变的容器,在里面可以存放多个不同类型的元素。列表,以后写程序会用的非常多,要多些多练。
元组(tuple),是一个有序且不可变的容器,在里面可以存放多个不同类型的元素。元组,以后写程序用的不是很多,主要以了解其特殊和用法为主。
如何体现不可变呢? 记住一句话:《"我儿子永远不能换成是别人,但我儿子可以长大"》
v1 = (11,22,33)
# 建议:议在元组的最后多加一个逗v3 = ("李杰","Alex",)
注意:建议在元组的最后多加一个逗号,用于标识他是一个元组。
# 面试题
1. 比较值 v1 = (1) 和 v2 = 1 和 v3 = (1,) 有什么区别?
2. 比较值 v1 = ( (1),(2),(3) ) 和 v2 = ( (1,) , (2,) , (3,),) 有什么区别?
(1,2,3)
2. 独有功能
无
3. 公共功能
1.相加
两个列表相加获取生成一个新的列表。
data = ("赵四","刘能") + ("宋晓峰","范德彪")
print(data) # ("赵四","刘能","宋晓峰","范德彪")
2. 相乘
列表*整型 将列表中的元素再创建N份并生成一个新的列表。
data = ("赵四","刘能") * 2
print(data) # ("赵四","刘能","赵四","刘能")
3. 获取长度
user_list = ("范德彪","刘华强",'尼古拉斯赵四',)
print( len(user_list) )
4. 索引
user_list = ("范德彪","刘华强",'尼古拉斯赵四',)
print( user_list[0] )
5. 切片
user_list = ("范德彪","刘华强",'尼古拉斯赵四',)
print( user_list[0:2] )
6. 步长
user_list = ("范德彪","刘华强",'尼古拉斯赵四',"宋小宝","刘能")
print( user_list[1:4:2] )
# 字符串 & 元组。
user_list = ("范德彪","刘华强",'尼古拉斯赵四',"宋小宝","刘能")
data = user_list[::-1]
# 列表
user_list = ["范德彪","刘华强",'尼古拉斯赵四',"宋小宝","刘能"]
data = user_list[::-1]
user_list.reverse()
print(user_list)
7. for循环
目前:只有 str、list、tuple 可以被for循环。 "xxx" [11,22,33] (111,22,33)
# len + range + for + 索引
user_list = ("范德彪","刘华强",'尼古拉斯赵四',"宋小宝","刘能")
for index in range(len(user_list)):
item = user_list[index]
print(item)
4. 转换
其他类型转换为元组,使用tuple(其他类型),目前只有字符串和列表可以转换为元组。
data = tuple(其他)
# str / list
5. 其他
2.5.1 嵌套
由于元组和列表都可以充当容器,他们内部可以放很多元素,并且也支持元素内的各种嵌套。
tu = ( '今天姐姐不在家', '姐夫和小姨子在客厅聊天', ('姐夫问小姨子税后多少钱','小姨子低声说道说和姐夫还提钱') )
tu1 = tu[0]
print(tu1) # 今天姐姐不在家