Python元组常用 *** 作小技巧

Python元组常用 *** 作小技巧,第1张

所以这篇文章,我们先来回顾和总结Python数据结构里常用 *** 作。Python中常见的数据结构可以统称为容器(container)。序列(如列表和元组)、映射(如字典)以及集合(set)是三类主要的容器。而扁平序列如str、bytes、bytearray、memoryview 和 array.array等不在这篇文章的讨论范围内。

在此,我们先从元组开始说起。

元组区别于列表的显著特征之一就是它不能被修改,但其另外一个作用就是 用于没有字段名的记录 [1] 。因为后者经常被忽略,我们先来看看元组作为记录的作用。

使用括号就可以定义一个元组。元组中的每个元素都存放了记录中一个字段的数据,外加这个字段的位置。正是这个位置信息给数据赋予了意义。下面的例子中,元组就被当作记录加以利用:

输出为:

上述for循环中的 *** 作提取了元组中的元素,也叫作拆包(unpacking)。平行赋值是对元组拆包很好的应用,示例如下:

还有一个经典而优雅的应用是交换变量的值:

用 * 运算符把一个可迭代对象拆开作为函数的参数,例如Python的内置函数pmod接收两个数字类型的参数,返回商和余数。以下范例将使用 * 将元组传入函数。

输出为:

有些函数有多个返回值,将其赋给一个变量时,变量类型即是元组:

输出为:

zip是Python的内置函数,能够接收两个或多个序列,并组成一个元组列表,在Python3中会返回一个迭代器,如下所示:

输出为:

元组当然也支持一些常规 *** 作,如对于元组 a = (1, 'y', 5, 5, 'x') :

上述内容不仅涵盖了元组的基本 *** 作,同时也结合了实际工作中常搭配使用的其他函数、运算符等。在回顾这些知识时主要参考了两本经典的Python编程书籍:《流畅的Python》和《像计算机科学家一样思考Python》,有兴趣的朋友可以深入阅读!

希望这篇文章对你有帮助,下回将总结Python列表的使用技巧。

[1]《流畅的Python》:https://book.douban.com/subject/27028517/

思考:如果想要存储多个数据,但是这些数据是不能修改的数据,怎么做?

答:列表?列表可以一次性存储多个数据,但是列表中的数据允许更改。

一个元组可以存储多个数据,元组内的数据是不能修改的。

元祖特点:定义元组使用小括号,且用逗号隔开每个数据,数据可以是不同的数据类型

注意: 如果定义的元组只有一个数据,那么这个数据后必须添加逗号,否则数据类型为唯一的

这个数据的数据类型

元组数据不支持修改,只支持查找,具体如下:

元组特点:定义元组使用小括号,且逗号隔开各个数据,数据可以是不同的数据类型

如果定义的元组只有一个数据也需要加逗号,否则数据类型为唯一的这个数据的数据类型

元组中的数据是不可以删除,修改的

如果要存储对个数据,但这些数据是不能修改的数据就使用元组

使用方法:

1、查找 元组数据不支持修改,只支持查找

按下标查找数据

index()

count()

len()

# 1,按下标查找数据

tuplel = ('aa','bb','cc','dd')

print(tuplel[0]) # aa

# 2,index():查找某个数据,如果数据存在返回对应的下标,否则报错,语法和列表,字符串的index方法相同

tuplel = ('aa','bb','cc','bb')

print(tuplel.index('aa')) # 0

# 3,count():统计某个数据在当前元组中出现的次数

tuplel = ('aa','bb','cc','bb')

print(tuplel.count('bb')) # 2

# 4,len()

print(len(tuplel)) # 4--tuplel 中有4个数据

2、修改

元组内的直接数据如果修改则立即报错

但是如果元组里面有列表,修改列表里面的数据则是支持的,

t1 = ('aa','bb','cc','dd')

# t1[0] = 'aaa' # 直接报错,列表数据不允许修改

t2 = ('aa','bb',['cc','dd'])

print(t2)

print(t2[2][0])

t2[2][0] = 'xiaoguai'

print(t2)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11705253.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存