从零开始的python学习——元组
ʕ • ᴥ • ʔ
づ♡ど
🎉 欢迎点赞支持🎉
个人主页:励志不掉头发的内向程序员;
专栏主页:python学习专栏;
文章目录
前言
一、元组是什么
二、创建元组
三、访问下标
四、切片操作
五、遍历元组元素
六、查找元素
七、连接链表
八、修改操作
九、元组存在的意义
总结
前言
上一章节已经学习过了一个可以快速创建多个变量的列表了,本章节我们再来学习一个这样的工具,元组。通过本章节,我们将了解到我们的元组与列表的区别,以及我们为什么要有元组的存在,我们一起来看看吧。
一、元组是什么
通过学习列表,我们对创建多个变量的含义和需求已经了解充分,而我们的元组也是这样的一个工具。与列表的最大区别就在于,列表可以随时修改里面的元素,但是元组不能修改。
因此,在列表中我们学到的像读的操作,比如访问下标,切片,遍历,in,index,+等,元组也是一样支持的。
但是像写的操作,比如修改元素,新增元素,删除元素,extend等,元组都是不支持的。
二、创建元组
创建列表主要有两种方式,( ) 表示一个空的元组。
# 1. 直接使用字面值来创建
# () 表示一个空的元组
a = ()
print(type(a))# 2. 使用 tuple() 来创建
b = tuple()
print(type(b))
tuple 是 Python 中的内置函数,这里创建的都是空元组。
和列表相同,我们更加推荐我们第一种写法。我们也可以直接在()中设置初始值。
a = (1, 2, 3, 4)
print(a)
元组中的元素也是可以包含任意类型的。
a = (1, 3.4, 'hello', True, [5, 6], (7, 8))
print(a)
三、访问下标
可以通过下标访问操作符 [ ] 来获取到列表中的任意元素,下标也是从 0 开始,到 len - 1 结束的。
a = (1, 2, 3, 4)
print(a[2])
我们的下标依然可以是负数,也是代表着倒数第几个元素。
a = (1, 2, 3, 4)
print(a[-1])
当我们的下标越界访问时,我们的编译器也和列表一样会发生异常。
只不过这里变成元组越界了而已。
四、切片操作
通过下标操作是一次取出里面第一个元素。
通过切片,则是一次取出一组连续的元素,相当于得到一个子列表。
使用 [ : ] 的方式进行切片操作。
我们的切片操作是和我们的列表是完全一样的。
a = (1, 2, 3 , 4)
print(a[1 : 3])
包括切片这里可以省略前面的下标和后面的下标,已经负数等,是完全一样的,这里就不过多赘述,大家有不懂的可以看上一章的列表的切片操作。
五、遍历元组元素
元组想要遍历的最简单的办法也是使用 for 循环。
a = (1, 2, 3, 4)
for elem in a:print(elem)
其他的方式像用 while 循环,以及使用 for 循环通过下标的方式遍历都是可以的。
六、查找元素
使用 in 操作符,判定元素是否在元组中存在,返回值是布尔类型,使用 index 方法来判定当前元素在元组中的位置,得到一个下标。
a = (1, 2, 3, 4, 5 ,6)
print(3 in a)
print(a.index(5))
当然,如果没有找到依旧是会出现异常的。
a = (1, 2, 3, 4, 5 ,6)
print(a.index(10))
七、连接链表
我们元组依旧可以使用 + 能够把两个元组拼接在一起。
a = (1, 2, 3)
b = (4, 5, 6)
print(a + b)
c = a + b
print(c)
当然,除了 + 这个连接链表的方式外,其他的就不可以了,因为其他的连接方式会改变我们的元组,只有这个 + 不会对元组产生任何改变。
八、修改操作
我们以上的操作,本质上都是读操作,它一旦创建了就不能够修改了。
# 修改操作
a = (1, 2, 3)
a.insert(1, 4)
a[1] = 5
a.append(2)
a.pop(0)
a.extend()
// .....
当我们尝试去修改的时候,我们的程序就会报错。
注:
我们元组除了以上操作外还有一个重要的操作,那就是当我们进行多元赋值时,其实本质上是按照元组的方式来进行工作的。
def getPoint():x = 10y = 20return x, yx, y = getPoint()
print(type(getPoint()))
这里就是一个多元赋值,我们的返回本质上就返回一个元组。
九、元组存在的意义
我们可以来看一个情景,在协同开发的时候,一个程序猿 A 实现一些功能,提供给程序猿 B 来使用。A写好一些函数,让 B 去调用,B肯定会函数传参的,此时B在传参的时候可能就会纠结一个问题:我把我的参数传过去了,A的函数里面是否会把我的参数内容给改了呢?如果我们使用元组就可以避免这样的纠结。
同时元组不可修改就意味着它是不可变对象,不可变对象是可哈希的(我们后面会讲)。
总结
以上就是我们同时创建很多个变量的两个类型的全部内容啦,大家要多加练习,通过不断的练习去熟练掌握。
🎇坚持到这里已经很厉害啦,辛苦啦🎇
ʕ • ᴥ • ʔ
づ♡ど