0

2.9Python下关于列表的常用方法(一)

Posted by 撒得一地 on 2016年1月20日 in python教程

方法是一个与某些对象有紧密联系的函数,对象可能是列表、数字,也可能是字符串或者其他类型的对象。一般来说,方法可以这样进行调用:

对象.方法(参数)

除了对象被放置到方法名之前,并且两者之间用一个点号隔开,方法调用与函数调用很类似。关于列表,提供了许多简便方法,用于检测或者修改其中的内容。

append方法

append方法用于在列表末尾追加新的对象:

>>> lst = [1,2,3]
>>> lst.append(4)
>>> lst
[1, 2, 3, 4]

上面变量名用lst,切勿使用list作为变量名。因为list是一个内建函数。如果使用list作为变量名,我们就无法调用list函数。可以根据实际情况定义比较有意义的变量名。

append方法和其它一些方法类似,在恰当的位置对列表进行修改,所以它不是简单地返回一个修改过的新列表,而是直接修改原来的列表。

count方法

count方法用于统计某个元素在列表中出现的次数:

>>> numbers = [1,1,2,2,4,5,2,3,9]
>>> numbers.count(2)
3

>>> ['yes','no','no','yes','yes'].count('yes')
3

>>> x = [[1,2],2,2]
>>> x.count([1,2])
1

extend方法

extend方法可以在列表的末尾一次性追加另一个序列中的多个值。换句话说,可以用新列表拓展原有的列表:

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

上面的例子中,看起来很像是连接操作,两者主要的区别是:extend方法修改了被拓展的序列(上面的例子就是a)。然而连接操作将返回一个新的列表:

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

从上面的例子中可以看到,被连接的列表与之前例子中被拓展的列表是一样的(都是b列表),但是连接后a列表并没有发生变化。原始的连接操作创建了一个包含a和b副本的新列表。而且a = a + b效率会比a.extend(b)方法低。当然,还可以使用分片赋值来实现相同效果,但可读性比较差:

>>> a = [1,2,3]
>>> b = [4,5,6]
>>> a[len(a):] = b
>>> a
[1, 2, 3, 4, 5, 6]

index方法

index方法用于从列表中找出某个值第一个匹配项的索引位置:

>>> str = ['hehe','haha','xixi','lala']
>>> str.index('xixi')
2

>>> str.index('xixi1')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: 'xixi1' is not in list

>>> str.append('xixi')
>>> str.index('xixi')
2

当搜索"xixi"这个字符串时,会找到这个字符串第一次出现的位置。然而,当搜索的字符串不存在时,则会引发一个异常。

insert方法

insert方法用于将对象插入到列表中:

>>> numbers = [1,2,3,4]
>>> numbers.insert(3,'ff')
>>> numbers
[1, 2, 3, 'ff', 4]

>>> numbers.insert(5,'ff')
>>> numbsers
[1, 2, 3, 'ff', 4, 'ff']

>>> numbers.insert(7,'ff')
>>> numbers
[1, 2, 3, 'ff', 4, 'ff', 'ff']

>>> numbers.insert(100,'ff')
>>> numbers.insert(100,'ff')
>>> numbers
[1, 2, 3, 'ff', 4, 'ff', 'ff', 'ff', 'ff']

标签:

上一篇:

下一篇:

相关推荐

发表评论

电子邮件地址不会被公开。 必填项已用*标注

5 + 9 = ?

网站地图|XML地图

Copyright © 2015-2018 技术拉近你我! All rights reserved.
闽ICP备15015576号-1,版权所有©psz.