从零开始的python学习——元组

发布于:2025-09-05 ⋅ 阅读:(23) ⋅ 点赞:(0)

ʕ • ᴥ • ʔ

づ♡ど

 🎉 欢迎点赞支持🎉

个人主页:励志不掉头发的内向程序员

专栏主页: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 = 10
    y = 20
    return x, y

x, y = getPoint()
print(type(getPoint()))

这里就是一个多元赋值,我们的返回本质上就返回一个元组。

九、元组存在的意义

我们可以来看一个情景,在协同开发的时候,一个程序猿 A 实现一些功能,提供给程序猿 B 来使用。A写好一些函数,让 B 去调用,B肯定会函数传参的,此时B在传参的时候可能就会纠结一个问题:我把我的参数传过去了,A的函数里面是否会把我的参数内容给改了呢?如果我们使用元组就可以避免这样的纠结。

同时元组不可修改就意味着它是不可变对象,不可变对象是可哈希的(我们后面会讲)。


总结

以上就是我们同时创建很多个变量的两个类型的全部内容啦,大家要多加练习,通过不断的练习去熟练掌握。

🎇坚持到这里已经很厉害啦,辛苦啦🎇

ʕ • ᴥ • ʔ

づ♡ど


网站公告

今日签到

点亮在社区的每一天
去签到