2.9Python下关于列表的常用方法(一)
下一篇: 2.10Python下关于列表的常用方法(二)
方法是一个与某些对象有紧密联系的函数,对象可能是列表、数字,也可能是字符串或者其他类型的对象。一般来说,方法可以这样进行调用:
对象.方法(参数)
除了对象被放置到方法名之前,并且两者之间用一个点号隔开,方法调用与函数调用很类似。关于列表,提供了许多简便方法,用于检测或者修改其中的内容。
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']
下一篇: 2.10Python下关于列表的常用方法(二)