比较操作符
可以看到,只要a中第一个元素比b中第一个元素大,后面的都不比较,直接告诉你a>b,这点和C语言的字符串比较是一样的(字符串比较ASCII)
逻辑操作符
连接操作符
+这个运算符只能用于两个列表元素类型都相同的情况,如果要给列表添加元素,最好用前面讲到的三种方法
重复操作符
*3不会改变原有的列表内容,只有*=才会改变
成员关系操作符
123在列表c中,则返回ture,321不在c中,所以返回false
再看这种列表中包含列表的情况,可以看到in不能判断列表中的列表,只能在“根目录”这一层进行操作,要想判断这种情况,必须手动改加索引
这类似于C中访问二维数组
查看关于列表操作的BIF(内置函数)有多少个,我们在前几课学过dir这个命令,现在派上用场
接下来学习一下count这个BIF,它的作用是 计算列表中的参数在列表中出现的次数
注意上方箭头处容易出错的地方,如果不明白为什么第一次会显示次数为1,那么请再重新看一遍此文章
Index是索引的意思,可以返回元素在列表中的位置,第二个和第三个参数是范围,表示从3开始,到8结束这个范围内参数1所出现的位置,不多说,看图就明白了
Reverse是让列表翻转(没有参数)
Func和key
Sort是比较重要的一个BIF,它的功能是给列表从小到大排序
其实sort是有参数的,sort(Func,key,reverse) Func是排序的算法,默认为归并排序,key为函数,指定取待排序元素的哪一项进行排序,默认为全部,reverse实现降序排序,需要提供一个布尔值,默认为False(升序排列)
下面为本讲的重点
如图,c是a的一个标签,就像C++中的引用传递一样,只是一个别名,但是b是a的一个拷贝,这就说明了分片的重要性了。
课后题
1. 请问如何将下边这个列表的'学逆向'修改为'恒深析'?
- list1 = [1, [1, 2, ['学逆向']], 3, 5, 8, 13, 18]
- list1[1][2][0] = '恒深析'
2. 列表还有两个内置方法没给大家介绍,不过聪明的你应该可以自己摸索使用的门道吧:copy() 和 clear()
copy() 方法跟使用切片拷贝是一样的:
- >>> b = a.copy()
- >>> list2
- [1, [1, 2, ['恒深析']], 3, 5, 8, 13, 18]
clear() 方法用于清空列表的元素,但要注意,清空完后列表仍然还在哦,只是变成一个空列表。
- >>> b.clear()
- >>> b
- []