Python为列表提供几个方法,用于检查或者修改列表内容。
1.append方法,用于在列表末尾追加元素(只能在末尾追加一个元素)
>>> x=[1,2,3]
>>> x.append(4)
>>> x
[1, 2, 3, 4]
2.count方法,用于统计某个元素在列表中出现的次数
>>> x=[1,2,[1,2],1] >>> x.count(1) 2 >>> x.count([1,2]) 1
3.extend方法,用于在列表末尾一次性追加来一个序列(是序列不仅仅是列表哦)的多个值>>> x.count(6) 0
>>> x=[1,2,[1,2],1] >>> y=1,2,3 #y是一个元组 >>> z='abc' #z是一个字符串 >>> x.extend(y) >>> x [1, 2, [1, 2], 1, 1, 2, 3] >>> x.extend(z) >>> x [1, 2, [1, 2], 1, 1, 2, 3, 'a', 'b', 'c']
>>> x>>>x.extend(['hello'])
[1, 2, [1, 2], 1, 1, 2, 3, 'a', 'b', 'c', 'hello'] 注意extend方法和列表的连接是不同的,两个列表x,y做连接并没有改变x,y本身的值extend方法可以用分片赋值x[len(x):]=y来等价实现,不过在写代码过程中使用extend方法更易读。>>> x=[1,2,3] >>> y=list('abc') >>> y ['a', 'b', 'c'] >>> x+y #序列x,y做了连接,但是没有改变x,y本身的值 [1, 2, 3, 'a', 'b', 'c'] >>> x [1, 2, 3] >>> y ['a', 'b', 'c']
4.index方法,用于从列表找出某个值第一次匹配的索引位置。如果列表中没有查找的元素将报错。
5.insert方法,用于将对象插入到列表中(一次只能插入一个元素)>>> x=list('abc')*3 >>> x ['a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c'] >>> x.index('c') 2 >>> x.index('f') Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: 'f' is not in list
>>> x ['a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c'] >>> x.insert(2,'insert') >>> x ['a', 'b', 'insert', 'c', 'a', 'b', 'c', 'a', 'b', 'c'] >>> x.insert(20,'insert') #插入的下标大于最右边,则在列表末尾插入元素 >>> x ['a', 'b', 'insert', 'c', 'a', 'b', 'c', 'a', 'b', 'c', 'insert'] >>> x.insert(-20,'hahah') #插入的下标先于最左边,则在列表首位插入元素 >>> x ['hahah', 'a', 'b', 'insert', 'c', 'a', 'b', 'c', 'a', 'b', 'c', 'insert', 222]
insert方法同样可以用分片赋值x[20:20]=[对象]来实现,不过分片赋值可以实现一次插入多个值6.pop方法,用于移除列表中某一个元素(默认移除最后一个),并且返回该元素的值
pop方法是唯一一个既能修改列表有返回元素值(除了None)的列表方法。>>> x=list('abc') >>> x ['a', 'b', 'c'] >>> x.pop() 'c' >>> x.pop(1) 'b' >>> x.pop(4) #不在列表范围,报错 Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: pop index out of range >>> x.pop() 'a' >>> x.pop() #列表为空,报错 Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: pop from empty list
问题:只通过以上几个方法,如何实现栈和队列?
7.remove方法,用于移除列表中某个值的第一个匹配项
8.reserve方法,将列表中元素方向存放>>> x=list('abc')*2 >>> x ['a', 'b', 'c', 'a', 'b', 'c'] >>> x.remove('b') #只有第一个b被移除了 >>> x ['a', 'c', 'a', 'b', 'c'] >>> x.remove('f') #remove不存在的元素报错 Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: list.remove(x): x not in list
9.sort方法,对列表元素排序。(强调,该方法是修改的原序列,并且没有返回值)>>> x=list('abcd') >>> x ['a', 'b', 'c', 'd'] >>> x.reverse() >>> x ['d', 'c', 'b', 'a']
问题:如何把元素由高到低的排序呢?>>> x=[7,3,4,6,2,5,1] >>> x.sort() >>> x [1, 2, 3, 4, 5, 6, 7]
注:sort方法的参数单独分享。