python基础知识之列表--方法

本文详细介绍了Python列表的常用方法,包括append、count、extend、index、insert、pop、remove、reverse和sort。重点讲解了这些方法的功能、参数及注意事项,帮助读者深入理解如何操作和修改列表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法是与对象密切关系的函数。对象可以是序列、字符串、数字或者是其他类型的对象。方法进行调用的方法:
对象.方法(参数)
对象至于方法之前,并用点号隔开,方法调用类似于函数调用。

1. append

>>> num=[1,2,3]
>>> num.append(4)
>>>num
[1,2,3,4]
>>> num.append([5,6])
>>> num
[1,2,3,4,[5,6]]
>>> num.append('python')
>>> num
[1,2,3,4,[5,6],'python']
>>> num.append(7,8)
Traceback (most recent call last):
  File "<pyshell#9>",line 1,in<module>
    num.append(7,8)
TypeError:append() takes exactly one argument(2given)
>>> 

append方法用于在列表末尾添加新的元素,只接受一个参数,参数可为数字、字符串、列表。num.append([5,6])中,序列[5,6]当作num序列一个元素,结果显示正确,num.append(7,8)中,7和8是两个元素,结果显示错误。
注意:append方法即不是简单的返回一个新列表,而是直接修改原来的列表。

2. count

>>> x=list('pythonpython')
>>> x.count('p')
2
>>> x=[[1,2],1,1,[1,2,[1,2]]]
>>> x.count(1)
2
>>> x.count([1,2])
1
>>> x.count(2)
0
>>> 

count方法统计某个元素在列表出现的次数,方法参数为列表的一个元素
以上面第二个例子剖析一下,x=[[1,2],1,1,[1,2,[1,2]]],x有4个元素依次为[1,2],1,1,和[1,2,[1,2]]。如此看来x.count(1)的结果不是5而应该是2,因为[1,2]是x的元素,而序列[1,2]中的1是序列[1,2]的元素而不是x的元素。一次类推,大家应该理解x.count(2)结果为0的原因了。

3. extend

两个列表元素为同类型:

>>> a=[1,2,3]
>>> b=[4,5,6]
>>> a.extend(b)
>>> a
[1,2,3,4,5,6]
>>> b
[4,5,6]
>>> a.extend([7,8])
>>> a
[1,2,3,4,5,6,7,8]
>>> c=[9,10,11]
>>> a.extend(c[0:2])
>>> a
[1,2,3,4,5,6,7,8,9,10]
>>> 

两个列表元素为不同类型:

>>> a=[1,2,3]
>>> b=['w','a','n']
>>> a.extend(b)
>>> a
[1,2,3,'w','a','n']
>>> a.extend(['g','c','u'])
>>> a
[1,2,3,'w','a','n','g','c','u']
>>> 

连接操作:

>>> a=[1,2,3]
>>> b=[4,5,6]
>>> a+b
[1,2,3,4,5,6]
>>> a
[1,2,3]
>>> b
[4,5,6]
>>> 

extend方法可以在一个列表后面一次性追加另一个序列的多个值,即可以用新的列表更新原有列表,方法参数为一个列表,该参数列表的元素可以为数字、字符类型。
注意:extend方法与连接操作看起来很像,但是两者的区别主要是extend方法修改了被修改的列表。

4. index

>>> name=['wang','cui','zhang','li''wang']
>>> name.index('wang')
0
>>> name.index('cui')
1
>>> name.index('li')
3
>>> name.index('zhao')
Traceback (most recent call last):
  File "<pyshell#37>",line 1,in <module>
    name.index('zhao')
ValueError: list.index(x): x not in list
>>> 

index方法可从列表中找出某个第一个匹配的索引位置,参数为列表的一个元素。虽然列表中有两个‘wang’元素,但index方法只返回第一个‘wang’元素的索引号。若参数不为列表的元素,结果报错。

5. insert

>>> num=[1,2,3,4]
>>> num.insert(2,'python')
>>> num
[1,2,'python',3,4]
>>> num.insert(2,[5,6])
>>> num
[1,2,[5,6],'python',3,4]
>>> num.insert(0,0)
>>> num
[0,1,2,[5,6],'python',3,4]
>>> 

insert方法将对象插入列表中,参数为(索引,对象),对象可为数字、字符串、列表等。

6. pop

>>> num=[1,2,3]
>>> num.pop()
3
>>> num
[1,2]
>>> num.pop(0)
1
>>> num
[2]
>>> 

pop方法会移除列表中一个元素,参数为空时,默认移除最后一个元素,并返回该元素的值。参数为索引时,默认移除索引号的元素,并返回该元素的值。
注意:pop方法是唯一一个能修改列表又可以返回值的列表方法。
补充:
数据结构中入栈(push)和出栈(pop),python 没有入栈,但是可用append方法替代。
LIFO即后进早出:

>>> num=[]
>>> num.append(1)
>>> num
[1]
>>> num.append(2)
>>> num
[1,2]
>>> num.append(3)
>>> num
[1,2,3]
>>> num.pop()
>>> num
[1,2]
>>> num.pop()
>>> num
[1]
>>> 

FIFO先进先出:可用insert(0,对象)来替代append方法。

>>> num=[]
>>> num.insert(0,1)
>>> num
[1]
>>> num.insert(0,2)
>>> num
[2,1]
>>> num.pop(1)
>>> num
[2]
>>> num.pop(0)
>>> num
[]
>>> 

7. remove

>>> num=[1,2,3,4]
>>> num.remove(1)
>>> num
[2,3,4]
>>> name=['w','a','n','w']
>>> name.remove('w')
>>> name
['a','n','w']
>>> 

remove方法移除列表中某个值的一个匹配项,没有返回值。参数为一个元素,可为数字、字符串、字符。若参数不是列表的元素,结果报错。
注意:只移除第一次出现的值。

8. reverse

>>> num=[1,2,3]
>>> num.reverse()
>>> num
[3,2,1]
>>> 

reverse方法将列表中的元素反向存放,返回值为空,参数为空,默认为整个对象。

9. sort

>>> num=[2,1,4,3,5]
>>> num.sort()
>>> num
[1,2,3,4,5]
>>> 

sort方法在原位置对列表进行排序,返回值为空,参数为空。
不改变原列表,将排序好的序列给另一个变量:

1.sort 方法修改了a,但是返回的是空值。

>>> a=[2,1,4,3,5]
>>> b=a.sort()
>>> print b
None

2.简单的把a赋值给b,a与b只想同一个列表,b使用sort方法后,使得a指向的列表也变了。

>>> a=[2,1,4,3,5]
>>> b=a
>>> b.sort()
>>> b
[1,2,3,4,5]
>>> a
[1,2,3,4,5]
>>> 

3.将a的副本给b,然后在用sort方法,并未影响原列表。

>>> a=[2,1,4,3,5]
>>> b=a[:]
>>> b.sort()
>>> b
[1,2,3,4,5]
>>> a
[2,1,4,3,5]
>>> 

4.使用sorted函数获得已排序列表的副本。

>>> a=[2,1,4,3,5]
>>> b=sorted(a)
>>> b
[1,2,3,4,5]
>>> a
[2,1,4,3,5]
>>>
>>> sorted('wei')
['w','e','i']
>>> 

10.高级排序

>>> cmp(1,2)
-1
>>> cmp(2,1)
1
>>> cmp(0,0)
0
>>> num=[2,1,4,3,5]
>>> num.sort(cmp)
>>> num
[1,2,3,4,5]
>>> num.sort(reverse=True)
>>> num
[5,4,3,2,1]
>>> num.sort(reverse=False)
>>> num
[1,2,3,4,5]
>>> name=['wang','wei','na']
>>> name.sort(key=len)
>>> name
['na','wei','wang']
>>> 

compare(x,y)函数,在 x < y时返回负数,x>y时返回正数,x=y时返回0。python的默认排序规则为升序排序。
sort 方法有三种参数:
(1)对象.sort(函数)
如num.sort(cmp),即排序过程中使用cmp函数。
(2)对象.sort(key=函数)
如name.sort(key=len),即根据元素长度排序。
(3)对象.sort(reverse=True),或 对象.sort(reverse=False)
关键字参数reverse是布尔值,用来指明序列是否进行反向排序。
python3.0以上没有cmp函数,被operator模块代替

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值