Python 序列之列表的操作方法

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
>>> x.count(6)
0


3.extend方法,用于在列表末尾一次性追加来一个序列(是序列不仅仅是列表哦)的多个值

>>> 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.extend(['hello'])    
>>> x
[1, 2, [1, 2], 1, 1, 2, 3, 'a', 'b', 'c', 'hello']


注意extend方法和列表的连接是不同的,两个列表x,y做连接并没有改变x,y本身的值

>>> 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']
extend方法可以用分片赋值x[len(x):]=y来等价实现,不过在写代码过程中使用extend方法更易读。

4.index方法,用于从列表找出某个值第一次匹配的索引位置。如果列表中没有查找的元素将报错。

>>> 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
5.insert方法,用于将对象插入到列表中(一次只能插入一个元素)

>>> 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方法,用于移除列表中某一个元素(默认移除最后一个),并且返回该元素的值

>>> 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
pop方法是唯一一个既能修改列表有返回元素值(除了None)的列表方法。

问题:只通过以上几个方法,如何实现栈和队列?

7.remove方法,用于移除列表中某个值的第一个匹配项

>>> 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
8.reserve方法,将列表中元素方向存放

>>> x=list('abcd')
>>> x
['a', 'b', 'c', 'd']
>>> x.reverse()
>>> x
['d', 'c', 'b', 'a']
9.sort方法,对列表元素排序。(强调,该方法是修改的原序列,并且没有返回值)

>>> x=[7,3,4,6,2,5,1]
>>> x.sort()
>>> x
[1, 2, 3, 4, 5, 6, 7]
问题:如何把元素由高到低的排序呢?

注:sort方法的参数单独分享。









  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值