序列的通用操作:
- 索引:0开始,可以从末尾索引,最后一个索引值为-1
- 分片:list[1:4:1] 包含起始,不包含末尾,设置步长
- 序列相加:将两个相同序列拼接到一块
- 序列乘法:相当于n个当前列表相加
- in:判断元素或者序列是否包含在另一个序列中
- len:计算序列中元素个数
- max:返回序列中的最大值
- min:返回序列中的最小值
- sorted:作用同list的sort方法,只不过这个函数返回一个新的排序后的列表,不会影响原列表,参数可以是列表、元组、字符串,返回都是列表
- reversed:反转序列(list/tuple/string/range)并返回一个迭代器
- list:接受任何类型的序列,返回一个列表
- tuple:接受任何类型的序列,返回一个元组
- 空列表:[] 空元组:()
- 创建包含一个元素的列表:[42] 元组:(42,)
- 初始列表:[None]*len 元组:(None,)*len
1、列表基本操作:
- 元素赋值:某个元素赋值、分片赋值、设置步长赋值(必须等长)
- 删除元素:del可以删除某个元素、也可以分片删除、也可以设置步长删除
- append:在列表末尾追加新元素,直接在原来列表基础上添加,没有返回值
- count:统计某个元素在列表中出现的次数
- extend:类似append,只不过这里是在列表末尾追加一个列表,假如存在两个列表a,b 那么这两个操作是等效的:a.extend(b) a[len(a):] = b
- index:找出某个元素在列表中的位置,如果不存在会抛出一个异常(ValueError)
- insert:两个参数,插入位置和插入对象
- pop:默认移除列表最后一个元素,并返回该元素,也可以传入索引弹出具体位置的元素
- remove:移除对象的第一个匹配项,如果没发现会抛出一个ValueError异常
- reverse:反向排列
- sort:对列表中的元素按一定的顺序排列,修改原列表
扩展:3、关于sort:
也可以自定义比较函数进行排序:
compare(x,y)函数:x>y返回正数、x<y返回负数、x=y返回0
内建函数cmp提供默认排序方式
numbers = [5,2,9,7]
numbers.sort(cmp) #[2,5,7,9]
可选参数:key、reverse
x.sort(key=len)
x.sort(reverse=True)
可以使用append(入栈)和pop(出桟)实现LIFO的数据结构--桟
可以使用append(入队列)和pop(0)(出队列)实现FIFO的数据结构--队列
注意:
在复制一个列表副本的时候,不能简单的直接将原列表赋值给新列表,否则新列表的所有修改都会作用在原列表上,可以采用分片的方式,比如y=x[:]
现在看看元组:
有哪些元组可以做到但是列表做不到的:
可以在映射和集合的成员中当作键来使用
是很多内建函数的返回值
除了修改相关的方法,基本上列表有的方法在元组上都可以直接用
元组没有index和count方法