文章目录
今天也是努力的小周!写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异常。
例:
会返还结果2,blue在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():将列表转换为元组。
在我们需要一份更安全的列表或是我们想要改变元组中的元素都可以用到
例: