首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python入门(10)

Python入门(10/18)

数据结构:元组

大家好,咱们继续讲Python四大数据结构,今天的主题是:元组。

1、元组(tuple)

元组(tuple)和列表(list)很相似,但是,列表允许并且提供了方法来改变它的值,而元组是不可改变的,即不允许你改变它的值,这应该也是它没有方法的部分原因。所以,有人把它称作“带了紧箍咒的列表”。

所以,请记住:

(1)、元组中包含的对象是不可更改的,注意不是元组不可更改。

(2)、元组因为更新或删除,其长度因此发生变化。

(3)、元组的主要作用是作为参数传递给函数调用、或是从函数调用那里获得参数时,保护其内容不被外部接口修改。

(4)、元组在前台用的不多,但是在后台却使用得相当频繁。

2、创建一个元组

将用逗号分隔的对象置于一对圆号之中,就创建了一个元组。

PS:虽然,元组通常存在于圆括号中,但形式上仅有圆括号是不够的,是否有逗号,才能决定它是不是一个元组。

说明:我们特地使用了前面列表示例的所有对象,来创建一个元组,它们看起来除了括号不同,是不是长得很相像?请注意,如何定义一个空的元组和只有一个单项的元组。看看最后定义的tuple6真的是一个元组吗?

3、访问元组中的值

说明:

1、显示:交互模式下的代码可以省略print()。

2、索引:使用下标访问元组中对象的值。

3、负索引:使用负数下标实现倒序索引。

4、通过-1索引:获取最后一项的值。

5、切片:使用冒号分节符进行切片操作。

6、特殊切片:获取一个完整的倒序元组。

4、更新元组

我们可以使用重新赋值、append()方法对元组进行修改或更新。

说明:

1、利用切片实现插值;

2、使用append()方法向列表的末尾追加新的项。

3、元组无法通过索引,直接为指定下标的项重新赋值,也不能使用del语句,通过索引删除指定下标的项。

5、元组的操作符

元组对 + 和 * 的操作符与列表相似。+ 号用于合并,* 号用于重复。

6、元组和列表的相互转换

元组与列表的转换操作,让它可以方便地将列表转换为元组,再利用元组的“惰性”,将它作为参数传递给函数调用、或是从函数调用那里获得参数时,保护其内容不被外部接口修改。

7、zip()与zip(*)

说明:

(1)、zip()会将两个以上的序列,打包到一个zip对象(由元组构成的新的序列)之中。

(2)、这个新的序列可以通过迭代遍历,也可以直接转换为一个列表或元组。

(3)、但无论哪种方式,只能读取一次,再读返回空值。

(4)、zip()操作,实际上适用于支持迭代操作的所有序列,甚至包括字符串。

说明:

(1)、zip(*)会将一个二维的序列,解包成两个以上的序列,并生成为一个zip对象。

(2)、解包这个对象,会发现它其实就是打包之前的多个序列,所以,zip()和zip(*)可以成为互逆的操作。

(3)、zip(*)也只支持一次性读取。再读返回空值。

(4)、zip()和zip(*)的操作在形式上实现了多个序列的行列互换。记住这个特性,我们在一些特定场合用得上。

7、函数利用* ,实现任意参数的传递

函数可以利用通配符*,实现任意数量的参数传递。

说明:此处,x的值为何被显示为元组,因为函数的参数本身就是位于圆括号中,且由逗号分隔的对象,在Python中,它当然就是元组了,它也体现了Python语法在内容和形式上的统一。

小结

这节课,我们学习了Python的数据结构:元组。详细了解了它的创建和使用方法,以及元组与列表的差异,及其相互转换。

预告

下节课,我们将继续介绍Python数据结构之三:字典,它也是Python四大常用数据结构之一。我们会发现,虽然它也是一种序列类型的数据结构,但是,它却具有为完全不同的内部组织形式,从而,让Python能为不同的应用场景或需求,提供技术支持。

您有任何疑问和建议,请留言。

下一篇
举报
领券