元组的介绍
同列表类似,元组也是有一系列特定顺序排列的元素组成的。区别就在与它是不可变的序列。在形式上,元组的所有元素都放在一对()中,相邻元素之间使用,分隔开。元组可以将整数、字符串、元组、列表等任何内容放入到元组中。元素的类型可以不同。通常情况下,元组中保存的一般都是程序中不可修改的内容。元组的创建
元素创建语法格式如下:tupname=(元素,元素2,元素3,元素n)例如:
num=(,2,3,4,5,6)user=(JackLove,25,江苏,职业AD)nba=(麦迪,卡特,科比,艾佛森)
创建空元组
创建空元组的语法格式如下:emptylist=()当我们定义一个函数需要传递一个元组类型的数据时,但是我们还不需要为它传递时,就可以先创建一个空的数组。
创建数值元组
类似于列表的list(range())方法一样:#打印0以内所有奇数print(list(range(,0,2)))#[,3,5,7,9]#打印0以内所有偶数print(tuple(range(0,0,2)))#(0,2,4,6,8)
删除元组
对于已经创建的元组,不再使用时,可以使用del将其删除。语法格式如下:deltuplename例如:
ig=(theshy,rookie,xun,lucas,puff)print(ig)#(theshy,rookie,xun,lucas,puff)deligprint(ig)#NameError:nameigisnotdefined
遍历元组
同列表一样,元组可以使用for去遍历元组里面的各个元素ig=(theshy,rookie,xun,lucas,puff)forgodinig:print(god)结果输出:theshyrookiexunlucaspuff同样也可以使用for+enumerate给各个元素添加索引。
ig=(theshy,rookie,xun,lucas,puff)forindex,godinenumerate(ig):print(index+,god)结果输出:theshy2rookie3xun4lucas5puff
修改元组元素
前面提到过,因为元组相较与列表属于不可变序列,所以我们无法修改元组里面的单个元素信息。但是如果我们有这种需求怎么办?我们可以对元组进行重新赋值,如下:ig=(theshy,rookie,xun,lucas,puff)print(第一场比赛,ig)#打印第一场ig比赛队员信息#(theshy,rookie,xun,lucas,puff)#需求:下一场换宁王打野ig=(theshy,rookie,Ning,lucas,puff)print(第二场比赛,ig)#打印第二场ig比赛队员信息#第二场比赛(theshy,rookie,Ning,lucas,puff)可以很明显的看出来,队伍ig没有发生变化。但是我们通过重新赋值的方式替换了场上比赛队员的信息。元组推导式
元组推导式可以利用range区间、元组、列表、字典和集合等数据类型,快速生成一个满足指定需求的元组。(表达式for迭代变量in可迭代对象[if条件表达式])例如:
a=(xforxinrange(0))print(a)#generatorobjectgenexprat0xDF0FEC80从上面的执行结果可以看出,使用元组推导式生成的结果并不是一个元组,而是一个生成器对象(后续会介绍),这一点和列表推导式是不同的。如果我们想要使用元组推导式获得新元组或新元组中的元素,这里为大家介绍两种方式:.使用tuple()函数,可以直接将生成器对象转换成元组。
#使用列表a生成0-9的数字a=(xforxinrange(0))print(tuple(a))#(0,,2,3,4,5,6,7,8,9)2.直接使用for循环遍历生成器对象,可以获得各个元素。
#使用列表a生成0-9的数字a=(xforxinrange(,0))foriina:print(i,end=)#列表推导式
官方是这么介绍的:它的结构是在一个中括号里包含一个表达式,然后是一个for语句,然后是0个或多个for或者if语句。那个表达式可以是任意的,意思是你可以在列表中放入任意类型的对象。返回结果将是一个新的列表,在这个以if和for语句为上下文的表达式运行完成之后产生。
列表推导式的执行顺序:各语句之间是嵌套关系,左边第二个语句是最外层,依次往右进一层,左边第一条语句是最后一层。
简单来说就是为了满足某种特定条件生成的列表。最主要的特点就是简洁,它的语法格式如下:
[表达式for迭代变量in可迭代对象[if条件表达式]]
例如:
.生成指定范围内的数值列表
#生成0个0-00之间的随机数importrandomrandomnum=[random.randint(0,00)foriinrange(0)]print(randomnum)#[63,36,53,26,3,22,46,25,45,60]
2.根据列表生成指定需求的列表
#全场商品打五折price=[,,,,]newprice=[int(x*0.5)forxinprice]print(newprice)#[,,,,]
3.从列表中找出满足条件的元素生成新的列表
#商品原价price=[,,,,]#筛选符合条件的商品(找出价格大于5k的商品)sales=[xforxinpriceifx]print(sales)#[,]元组vs列表
元组和列表都属于序列,而且都可以按照特定顺序存放元素,只要是python支持的类型又都不受限制,那么元组和列表有什么区别呢?
元组与列表有以下几个不同点。
第一个不同点是元组的声明使用小括号,而列表使用方括号,当声明只有一个元素的元组时,需要在这个元素的后面添加英文逗号;
第二个不同点是元组声明和赋值后,不能像列表一样添加、删除和修改元素,也就是说元组在程序运行过程中不能被修改。
第三个不同点是元组比列表的访问和处理速度快,如果只需对其元素进行访问而不进行修改操作。建议使用元组效果更好。
元组和列表最大的区别:列表中的元素可以进行任意修改,就好比是用铅笔在纸上写的字,写错了还可以擦除重写;而元组中的元素无法修改,除非将元组整体替换掉,就好比是用圆珠笔写的字,写了就擦不掉了,除非换一张纸。再进一步可以理解为:tuple元组是一个只读版本的list列表努力做一件事话,这个过程注定会艰难,努力也许还会很漫长,短期内也许也看不到成效。而正因为没有人能看得见整个世界未来,不过人却可以通过努力去尽量地看清自己的未来,如此才恰恰坚持的意义所在。
如果可能的话,请尽量把这个系列文章看完。坚持下去比说的再好都有用!我会和你一起打卡!!
回复下方「关键词」,获取优质资源
回复关键词「linux」,即可获取85页Linux工具快速教程手册和54页的Linux笔记。
回复关键词「Python进阶」,即可获取06页Python进阶文档PDF
回复关键词「Python面试题」,即可获取最新00道面试题PDF
回复关键词「python数据分析」,即可获取47页python数据分析与自然语言处理的PDF
回复关键词「python爬虫」,满满五份PPT爬虫教程和70多个案例
回复关键词「Python最强基础学习文档」,即可获取68页Python最强基础学习文档PDF,让你快速入门Python推荐我的