列表不同于字符串和元组:列表是可变的——可以改变列表的内容
1、列表函数
1、list(x)函数(其实是一种类型,而不是一个真正意义上的函数)
转化为列表,其中x可以是其他序列
可以用‘’.join(somelist)将一个由字符组成的列表转化为字符串
2、列表方法
方法定义:方法是一个和某些对象有紧密联系的函数,对象可能是列表、数字、字符串等
方法调用:对象.方法(参数)
1、append方法
用于在列表末尾追加新的对象,直接修改原列表a(可以用分片赋值实现)
2、count方法
统计某个元素在列表中出现的次数。
注意:y 和 'y' 的区别,y 是变量,‘y’ 是元素
3、extend方法
而a+b虽然能得到同样的结果,但并没有修改a,而是返回一个新的列表
4、index方法
用于从列表中找出某个值第一个匹配项的索引位置,当该值不存在时,异常出错
5、insert方法
将对象插入到列表中,(可以用分片赋值实现),修改原列表
6、pop方法
移除列表中的一个元素(默认是最后一个),并且返回该元素的值。
pop方法是唯一一个既能修改列表又返回元素值(除了None)的列表方法
可以加参数实现删除,及实现栈的先进先出:list.insert(0,x)——list.pop()或者list.pop(0)——list.pop()
7、remove方法
用于移除列表中某个值得第一个匹配项,找不到时,异常出错。修改原列表
8、reverse方法
将列表中的元素反向存放,
9、sort方法
在原位置上对列表进行排序,原位置上意味着改变原来的列表。不返回值
注意:如果需要返回一个排好序的副本,则先复制(y = x[:]),然后对y排序;不要用y=x,这样对y操作时,x也会变
另一种方法——利用sorted()函数,且这个函数可以作用于任何序列,但总返回一个列表。
10、高级排序
如果希望能按特定的方式进行排序(而不是sort方法默认方式),那么可以通过compare(x,y)的形式自定义比较函数。
compare(x,y):在x<y时,返回负数;在x>y时,返回整数;x=y时,返回0定义好该函数后,可以提供给sort方法作为参数。
注:sort还有两个可选的参数——key和reverse、
参数key和参数cmp类似——必须提供一个在排序过程中使用的函数。然而,该函数并不是直接用来确定对象的大小,而是为每个元素创建一个键,然后所有元素根据键来排序。比如:若要根据元素的长度来排序,那么可以使用len作为键函数
另外一个参数reverse是简单的布尔值,用来知名是否要反向排序
3、列表操作
索引、分片、连接、乘法等
注意:列表是可变的,可以修改的。所以本届介绍一些可以改变列表的方法。
1、改变列表:元素赋值
注意:不能为一个不存在的元素赋值。
2、删除元素
del语句
3、分片赋值
使用分片赋值,可以使用与原序列不等长的序列将分片替换。
使用分片赋值,插入新的元素。
使用分片赋值,删除元素