2.5 元组

5.元组

#元组也是一个容器,里面可以存放各种数据(和列表相似)
但他有一个特殊的特点:元组的儿子元素不允许添加、不允许修改、不允许删除,只能读。
v1 = (1,2,3)       # v1[0]=3不可以修改
v1 = ([1,2],2,3)   # v1[0][0]=2 可以修改
v1 = [1,2,(1,2,3)] # v1[2][0]=1 不可以修改 v1[2]=3 可以整体替换
一般用于存储一些在程序中不应该被修改的一系列值。

元组的定义
v1 = (11,22,33,)
v2 = ("武沛齐","Alex",)
v3 = ("武沛齐",)
注意:建议在元组的最后多加一个逗号,用于标识他是一个元组。

# 面试题
1. 比较值 v1 = (1) 和 v2 = 1 和 v3 = (1,) 有什么区别?
type v1 <class 'int'>
type v2 <class 'int'>
type v3 <class 'tuple'>

2. 比较值 v1 = ((1),(2),(3)) 和 v2 = ((1,),(2,),(3,),) 有什么区别?
v1 = [(1),(2),(3)] 等价于 [1,2,3]  
v2 = ((1,),(2,),(3,),) 是元组

	
转换
其他类型可以转换为元组,一般可以被循环的元素才能转换,目前我们学到的可以被循环有:字符串和列表。
name = "武沛齐"
data = tuple(name)
print(data) # 输出 ("武","沛","齐")
name = ["武沛齐",18,"pythonav"]
data = tuple(name)
print(data) # 输出 ("武沛齐",18,"pythonav")

其他

元组和列表非常相似,但由于元组的子元素无法修改的特点,所有在元组都没有修改、删除、添加的操作,只有读操作。

	#获取长度
user_list = ("范德彪","刘华强",'尼古拉斯赵四',)
print( len(user_list) )

	#索引
user_list = ("范德彪","刘华强",'尼古拉斯赵四',)
print( user_list[0] )
print( user_list[2] )
print( user_list[3] )

	#切片
user_list = ("范德彪","刘华强",'尼古拉斯赵四',)
print( user_list[0:2] )
print( user_list[1:] )
print( user_list[:-1] )

	#步长
user_list = ("范德彪","刘华强",'尼古拉斯赵四',"宋小宝","刘能")
print( user_list[1:4:2] )
print( user_list[0::2] )
print( user_list[1::2] )
print( user_list[4:1:-1] )

	#for循环
 user_list = ["范德彪","刘华强",'尼古拉斯赵四',"宋小宝","刘能"]
 for item in user_list:
     print(item)
 user_list = ["范德彪","刘华强",'尼古拉斯赵四',"宋小宝","刘能"]
 for item in user_list:
  if item == '刘华强':
      continue
  print(name)

	#嵌套
由于元组和列表都可以充当容器,他们内部可以放很多元素,并且也支持元素内的各种嵌套。

tu = ('今天姐姐不在家','姐夫和小姨子在客厅聊天',('姐夫问小姨子税后多少钱','小姨子低声说道说和姐夫还提钱'))
tu1 = tu[0]
tu2 = tu[1]
tu3 = tu[2][0]
tu4 = tu[2][1]
print(tu1) # 今天姐姐不在家
print(tu2) # 姐夫和小姨子在客厅聊天
print(tu3) # 姐夫问小姨子税后多少钱
print(tu4) # 小姨子低声说道说和姐夫还提钱
# 练习题:判断是否可以实现,如果可以请写代码实现。
li = ["alex",[11,22,(88,99,100,),33] "WuSir", ("ritian", "barry",), "wenzhou"]
- 请将 "WuSir" 修改成 "武沛齐"
- 请将 ("ritian", "barry",) 修改为 ['日天','日地']
- 请将 88 修改为 87
- 请将 "wenzhou" 删除,然后再在列表第0个索引位置插入 "周周"
点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注