您的位置:首页 > 房产 > 家装 > [Python学习日记-16] 细讲数据类型——元组

[Python学习日记-16] 细讲数据类型——元组

2024/10/6 6:02:32 来源:https://blog.csdn.net/zjw529507929/article/details/142112500  浏览:    关键词:[Python学习日记-16] 细讲数据类型——元组

[Python学习日记-16] 细讲数据类型——元组

简介

元组的创建和查看

元组的切片

元组的循环

元组的嵌套

简介

        有些时候我们的列表数据不想被人修改时怎么办?就可以用元组存放。元组(tuple)其实是列表的兄弟类型,他们非常的相似,但元组是不能修改的,这意味着不能向元组中添加、删除或修改元素,所以我们也把它称之为只读列表。

定义:与列表类似,只不过 [] 改成 ()

特性:

  1. 可存放多个值
  2. 不可变
  3. Python 中的元组是一种有序的,按照从左到右的顺序定义元组元素,下标从0开始顺序访问

元组的创建和查看

一、创建

name = (1,2,3,4)
name = ("str1","str2","str3","str4")
name = ("str1",2,3,"str4")
name = ("str1","str2",[1,2,3,4],"str3","str4")

 

二、查看 

1、索引查看

name = ("str1","str2","str3","str4")
name[0]
name[3]
name[-1]

 

2、使用列表的方法查询

name.index("str2")    # 返回从左开始匹配到的第一个 str2 的索引
name.count("str2")    # 返回元组中 str2 的个数

 

注意:index() 如果查找的元素不存在于元组当中,会报错说元组中不存在该元素;而 count() 没有找到将不会报错,而是显示0

3、获取元组的长度

print(len(name))

 

 4、直接查在不在元组

"str1" in name
"str5" in name
"str4" not in name

 

5、把元组全取出来

print(name[:])

 

 

元组的切片

        元组的切片和列表一样

name[start:end]

1、正着切

name = ("str1","str2","str3","str4","str5")
print(name[1:4])    # 不包含序号为4的元素
print(name[1:-2])
print(name[1:])    # 把最后的都取出来
print(name[:4])    # 左边不写代表从0开始

 

2、倒着切

name = ("str1","str2","str3","str4","str5")
print(name[-5:-1])print(name[-5:])    # 与列表相同,只需要不输入结尾的序号就可以直接取出后5位了

 

3、步长 

        元组的步长与列表也是一样的,默认的步长是1,所以切片的时候是一个个切的,我们通过步长的设置可以实现两个两个切、三个三个切...这样跳着切

name[start:end:step]        # step 默认值是1

print(name[0:-1:1])    # 设置步长为1
print(name[0:-1:2])    # 设置步长为2,这样会跳一个打印一个
print(name[0:-1:3])    # 设置步长为3
print(name[::3])    # 整个列表加步长3
print(name[::-1])    # 元组都倒序
print(names[-1:-5:-1])    # 在倒序的基础上就可以从右往左切

 

 

元组的循环

for i in name:print(i)

 

 

元组的嵌套

         前面说到,元组本身是不能修改的,如果元组中包含其他可变的元素呢?例如列表之类的。这些可变元素是可以改变的

name = ("str1","str2",[1,2,3,4],"str3","str4","str5")
name[2][0] = 11
print(name)

        为什么元组内的列表是可变的呢?按照理解不应该都是不可变的吗?这是因为元组只是存每个元素的内存地址,上面 [11,2,3,4] 这个列表本身的内存地址存在元组里确实不可改变,但是整个列表包含的元素的内存地址是存在另外一块空间里的,而这个空间是一个列表是可变的。

         总的来说,元组本身不可修改,如果包含可修改的数据类型, 那被包含的数据类型可以修改。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com