从零开始的Python计划 #4.1 【序列:列表·元组】


今天也是努力的小周!写Python真的是会上瘾!三天访问量破2000啦!再次谢谢各位!还有鼓励我的朋友们!第四章内容有点多,所以会分开写,4.2将会讨论循环这个非常强大的功能,我会尽快在明天更新的!今天的知识也比较多,那就一起梳理吧wwww

一·序列的概率

序列:包含多个数据项的对象,这些项目按顺序依次存储。
Python提供了不同类型的序列,包括列表和元组,它们之间的区别在于列表是可变的,而元组是不可变的。

1)列表

是一个包含多个数据项的对象
元素:是列表中的单个项目

当我们初始化列表的时候可以用两个方括号[ ]容纳元素(格式:list=[item1 , item2 , etc.] 这是在Python中初始化list的方式,用逗号分隔项)

举个例子:
在这里插入图片描述
even_number就不是一个包含单个数字的变量,而是包含了5个数字的列表
同样,我们也可以拥有字符串列表,它们都被存储在名为color的列表中

Python可以容纳项目有不同的类型我们也可以有一个混合类型的列表:


和变量相比,列表有些不同,它可以混合数据类型。

print功能可用于显示整个列表

1·列表索引

索引:指定元素在列表中位置的数字
从0开始索引,假设列表中共有n个元素,那么第一个元素的索引为0,第二个元素为1,第n个元素为n-1
负索引标识相对于列表末尾的位置,索引-1标识最后一个元素,-2标识最后一个元素的前一个

在这里插入图片描述

必须使用有效索引以防止引发索引器错误异常

列表是可变的,因此它们的元素可以更改。
如:

这里就是把green替换成了black
在这里插入图片描述

2·列表连接

+运算符可用于连接两个列表

例子:
在这里插入图片描述

无法将列表与其他数据类型连接,就像我们不能说字符串+整数那样,我们必须把数字转换成字符才能一起连接输出,这是类似的概念

如下图所示例,Python会抱怨list只能和list连接在这里插入图片描述
在这里插入图片描述

3·列表切片

切片:从序列中提取的项目范围
格式:list[start : end] ,start和end定义切片的范围(就是我想从该列表中取用的元素范围)
也就是所谓的跨度(Span),是一个包含从开始但不包含最后一个元素副本的列表

举些例子来使我们更好理解:

设置一个列表:
在这里插入图片描述

如果未指定开始,则将0用于开始索引

在这里插入图片描述
到位置2结束,但不包括2元素

取跨度就相当于我们数学中的开闭区间,start是闭区间,而end是开区间。

取位置3到位置7但是不包括第七个位置的元素,在这里插入图片描述

如果未指定结束,结果就会取到最后。

从位置5取到最后一个位置7在这里插入图片描述

还有件神奇的事情,如果我们要取的范围大于原来仅有的位置,Python并不会给我们抛出错误

列表中的位置是0-7,但是我们取到8并不会发生错误
在这里插入图片描述

这是因为8在切片中不被考虑,8-1会被认为是最后一个元素,因为8-1=7,对应的black是现有存在的索引。

4·列表运算
(1)in 运算符

可以使用in运算符确定列表中是否包含项目
格式:item in list

如果项在列表中,则返回True;如果项不在列表中,则返回False

例:
定义一个函数来取颜色,并检查某个颜色是否在列表中
在这里插入图片描述
在这里插入图片描述

同样,也可以使用not in 运算符来确定项目是否不在列表中
通过in 和not in 就可以达到目的,就像简单的英语一样。

(2)重复运算符

生成列表的多个副本并将它们连接在一起
符号*在应用于序列和整数时是一个重复运算符
序列是左操作数,数字是右操作数

通用格式:list*n

例:在这里插入图片描述

(3)函数方法列表运算

列表可以用办法和函数去做具体的操作运算

append

append(项 )–将项添加到列表的末尾

例:
在这里插入图片描述
需要.append()," "是用来调用函数的

index

index( 项)-返回值等于项的第一个元素的索引(就是找位置)。如果在列表中找不到项,则会引发 A ValueError异常。

例:在这里插入图片描述
会返还结果2blue在colors中的索引位置是2

它不只告诉我们这个元素在列表的位置,还告诉我们它是否在列表存在,在去取出和查找,使用元素都非常有用。

remove

移除
remove(项)–从列表中移除第一个出现的项目。如果在列表中找不到项,则会引发A ValueErrorexception的错误
注意是第一次出现的,所以如果有同一项目中重复的元素,它将只返回第一个

例:
在这里插入图片描述

所以remove函数会从列表中移除一个指定元素,它不是删除不会留下删除元素的空位,它会连接被移除元素的两边从而创建一个新列表

reverse

(相反)reverse:反转列表中项目的顺序

例:
继续使用上面的列表在这里插入图片描述

列表元素顺序反转

2)元组

一个不可变的序列,非常类似于一个列表,一旦创建它就不能更改
格式:tuple_name = (item1, item2,…)
元组支持与列表相同的操作:可以做索引,切片表达式,len(元素数量),,min(最小元素),max(最大元素)…
但是一旦设置好了,我们就不能改变它的内容了:

在这里插入图片描述
Python是从0开始计数的,所以red对应的是1
看起来很像列表,但不是列表用的方括号
因为元组中内容不能被改变,所以如上面所例Python会抛出错误

这样对比下来,也许你会觉得使用元组是没有好处的,但是它的确有更好的作用:(1)处理元组比处理列表快,因为解释器和处理器不需要准备去改变值 (2)使用更加安全,因为内容不能被改变,一旦我们存储起来,它们不会因意外而被重新分配

3)元组与列表的相互转换

这和之前的数据类型转换很相似,list():将元组转换为列表,
tuple():将列表转换为元组。

在我们需要一份更安全的列表或是我们想要改变元组中的元素都可以用到
例:

在这里插入图片描述

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值