Python基础——append、count、extend、index、insert、pop、remove、reverse、sort、clear、copy

在Python中对于列表(list)的操作有很多的方法,它们是与对象密切相关的一些函数,对象的形式可以是:列表,数字,字符串,或其他类型。现对一些常用方法进行总结:

方法的调用格式: 对象.方法(参数)

1. append

功能:在列表的末尾添加新的对象。

调用格式:list.sppend(obj)

示例:

#-----------------------------------------------------

>>> tring = [1,2,3,4]

>>> tring.append('test')

>>>tring

[1,2,3,4,'test']

#-----------------------------------------------------


2. count

功能:用于统计某个元素在列表中出现的次数。

调用格式:list.count(obj)

示例:

#----------------------------------------------------

>>> field = list('hello,world')

>>> field

['h', 'e', 'l', 'l', 'o', ',', 'w', 'o', 'r', 'l', 'd']

>>> print(field.count('l')

3

>>> mix = [[1,3],1,3,5,7,[1,3],9]

>>> print(mix.count([1,3])

2

#----------------------------------------------------


3. extend

功能:用于在列表的末尾一次性添加另一个序列中的多个值(序列扩展)。

调用格式:list.extend(obj)

示例:

#---------------------------------------------------

>>> a = ['hello','world']

>>> b = ['python','is','funny']

>>> a.extend(b)

>>> a

['hello','world','python','is','funny']

#-----------------------------------------------------

除了extend方法外,我们还可以采用序列相加、切片赋值等方法进行列表扩展,如:

#-----------------------------------------------------

>>> a = ['hello','world']

>>> b = ['python','is','funny']

>>> a + b

['hello','world','python','is','funny']

>>> a

['hello','world']

#------------------------------------------------------

>>> a = ['hello','world']

>>> b = ['python','is','funny']

>>> a[len(a) : ] = b

>>> a

['hello','world','python','is','funny']

#------------------------------------------------------

仔细观察发现,上面3种方法中extend与切片赋值功能相同,但与序列相加存在一些区别:

extend()方法修改了被扩展的序列,如列表a,扩展前后a的内容发生了变化;而序列相加只是返回了一个全新列表,不会修改原始列表的变量,如列表a,原始列表没有发生任何变化。


4. index

功能:用于从列表中找出某一个值第一个匹配项的索引位置。

调用格式:list.index(obj)

示例:

#------------------------------------------------------

>>> field =['hello','world','python','is','funny','hello']

>>> print(field.index('hello'))

0

>>> print(field.index('abc'))

ValueError: 'abc' is not in list

#------------------------------------------------------

说明:可以看到列表中虽然有2个‘hello’,但是只返回了第一个匹配项的索引;另外对于不在列表中元素,利用index方法就会报错。


5. insert

功能:用于将某一对象插入列表中。

调用格式:list.insert(index,obj)

示例:

#------------------------------------------------------------

>>> num = [1,2,3]

>>> num.insert(1,'hello,world')

[1,'hello,world',2,3]

#------------------------------------------------------------

>>>num = [1,2,3]

>>> num[1:1] =['hello,world']

>>> num

[1, 'hello, world', 2, 3]

>>>num[1:1] =['hello','world']

>>> num

[1, 'hello', 'world', 2, 3]

>>> num[1:1] = 'hello', 'world'

>>> num

[1, 'hello', 'world', 2, 3]

>>> num[1:1] = 'hello, world'

>>> num

[1, 'h', 'e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', 'd', 2, 3]

#-------------------------------------------------------------

说明:利用切片赋值和insert方法可以获得同样的效果,但是insert操作更方便。

注意:insert方法有两个参数,除了操作的obj外,还需指定需插入的索引位置。


6. pop

功能:用于移除列表中的一个元素(默认为最后一个,但可指定位置),并返回该元素的值。

调用格式:list.pop(obj)

示例:

#------------------------------------------------------------------

>>> field =['hello','world','python','is','funny']

>>> field.pop()   #默认

'funny'

>>> filed

['hello','world','python','is']

#------------------------------------------------------------------

>>> field = ['hello','world','python','is','funny']

>>> field.pop(2)   #指定索引

'python'

>>> filed

['hello','world','is','funny']

#------------------------------------------------------------------

说明:pop方法是唯一一个既能修改列表,又能返回元素值(除了None)的列表方法。

pop方法类似数据结构中的出栈,栈原理讲究的是最后放入的最先移出,称之为LIFO,即后进先出。

Python中没有入栈操作,但可以利用append方法来替代,因此append和pop方法联合使用,可实现入栈出栈操作。

示例:

#-----------------------------------------------------------------

>>>field = ['hello','world','python','is','funny']

>>> field.append(field.pop())  #先弹出再加入

>>> field

['hello', 'world', 'python', 'is', 'funny']

#------------------------------------------------------------------


7. remove

功能:用于移除列表中某一值的第一个匹配项。

调用格式:list.remove(obj)

示例:

#--------------------------------------------------------------------

>>> field = ['hello','world','python','is','funny','hello']

>>> field.remove('hello')

>>> field

['world', 'python', 'is', 'funny', 'hello']

#--------------------------------------------------------------------

>>> field = ['hello','world','python','is','funny','hello']

>>> field.remove('abc')

>>> field

ValueError: list.remove(x): x not in list

#----------------------------------------------------------------------

说明:remove删除的是删除对象的第一个匹配的索引位置。

另外,对于删除列表中不存在的元素,调用remove方法就会报错。


8. reverse

功能:用于将列表中元素进行反向操作。

调用格式:list.reverse()

示例:

#------------------------------------------------------------

>>> num = [1,2,3,4,5]

>>> num.reverse()

>>> num

[5,4,3,2,1]

#---------------------------------------------------------------

当需要对一个序列进行反向迭代时,可调用reversed方法,但其并不返回列表,而是一个迭代器(Iterator),可通过list操作,将其转换为列表对象,如:

#------------------------------------------------------------

>>> num = [1,2,3,4,5]

>>> list(reversed(num))

[5, 4, 3, 2, 1]

#------------------------------------------------------------


9. sort

功能:用于对原始序列进行排序操作,默认为升序;当然还可以指定参数,实现指定方法的排序操作。

调用格式:list.sort(func)

示例:

#------------------------------------------------------------

>>> num = [5,8,1,4,2,7,3]

>>> num.sort()   #默认

>>> num

[1, 2, 3, 4, 5, 7, 8]

#------------------------------------------------------------

根据上面的操作可以发现,进过sort方法后,原序列发生了改变;但如果我们想对原始序列sort操作的同时,又要保留原始序列形式不变,也许你会采用如下2种方法:

#-----------------------------------------------------------

>>> num = [5,8,1,4,2,7,3]

>>> n = num.sort()   #默认

>>> n

None

>>> num

[1, 2, 3, 4, 5, 7, 8]

#-------------------------------------------------------------

>>> num = [5,8,1,4,2,7,3]

>>> n = num

>>> n.sort()

>>> n

[1, 2, 3, 4, 5, 7, 8]

>>> num

[1, 2, 3, 4, 5, 7, 8]

#------------------------------------------------------------

好像并没有实现我们想要的操作,那该如何? 实际上,我们可采用如下方法:

#------------------------------------------------------------

>>> num = [5,8,1,4,2,7,3]

>>> n = num[ : ]

>>> n.sort()

>>> n

[1, 2, 3, 4, 5, 7, 8]

>>> num

[5, 8, 1, 4, 2, 7, 3]

#------------------------------------------------------------

另外,和reverse操作类似,我们还可以调用sorted方法进行排序操作。例如:

#------------------------------------------------------------

>>> num = [5,8,1,4,2,7,3]

>>> n = sorted(num)

>>> n

[1, 2, 3, 4, 5, 7, 8]

>>> num

[5, 8, 1, 4, 2, 7, 3]

#-------------------------------------------------------------

sorted函数可以适用于任何的序列,并且返回的结果都是一个列表。

除此之外,我们还可实现sort的高级排序,sort方法有2 个可选参数:key 和 reverse。

#------------------------------------------------------------------------------------------

>>> field = ['hello','world','python','is','funny']

>>> field.sort(key = len)   #按字符串由短到长排序

>>> field

['is', 'hello', 'world', 'funny', 'python']

#------------------------------------------------------------------------------------------

>>> field =['hello','world','python','is','funny']

>>>field.sort(key = len, reverse = True)   #按字符串由长到短排序

>>> field

['python', 'hello', 'world', 'funny', 'is']

#------------------------------------------------------------------------------------------

>>> num = [5,8,1,4,2,7,3]

>>>num.sort(reverse = True)   #排序后再逆序

>>> num

[8, 7, 5, 4, 3, 2, 1]

#------------------------------------------------------------------------------------------


10. clear

功能:用于清空列表,类似于 del list[ : ]。

调用格式:list.clear()

示例:

#-----------------------------------------------------------------------

>>> field = ['hello','world','python','is','funny']

>>> field.clear()

>>> field

[]

#----------------------------------------------------------------------

注:由于clear方法是清空整个列表元素,操作简单,但须慎用。


11. copy

功能:用于复制列表,类似于 list[ : ]。

调用格式:list.copy()

示例:

#--------------------------------------------------------------------

>>> y1 = ['hello','world','python','is','funny']

>>> y2 = y1.copy()

>>> y2

['hello', 'world', 'python', 'is', 'funny']

#--------------------------------------------------------------------







  • 5
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值