python列表方法
来源:互联网 发布:知世为什么鼓励小狼 编辑:程序博客网 时间:2024/06/15 18:56
1.append()
append()方法用于在列表末尾追加新的对象:
x = [1,2,3]x.append(4)print x
输出:
[1, 2, 3, 4]
append方法和其他一类方法类似,只是在恰当的位置修改原来的列表。这意味着,它不是简单的返回一个修改过的新列表。一般来说这正是你想要的,但在某些情况下,这样也会带来其他的麻烦。后面讲sort方法时,我会再次讨论这个问题的。
2.count()
count方法统计某个元素在列表中出现的次数:
>>> ['to','br','or','to','be'].count('to')2>>> x =[[1,2],2,2,[2,1,[1,2]]]>>> x.count(1)0>>> x.count(2)2>>>
3.extend()
extend方法可以在列表的末尾一次性追加另一个序列中的多个值。换句话说,可以用新列表扩展原有的列表:
x = [1,2,3]y = [4,5,6]x.extend(y)print x
输出:
[1, 2, 3, 4, 5, 6]
这个操作看起来很像连接操作,两者最主要的区别在于:extend方法修改了被扩展的序列(在这个例子中,就是x).而原始的连接操作则不然,它会返回一个全新的列表:
x = [1,2,3]y = [4,5,6]print x+yprint x
输出:
[1, 2, 3, 4, 5, 6][1, 2, 3]
你可以看到被连接的列表与之前例子中被扩展的列表是一样的,但是这次它并没有被修改。这是因为原始的连接操作创建了一个包含了x和y副本的新列表。如果需要如下例所示的操作,那么连接操作的效率会比extend方法低。
x = x+y
同样,这里也不是一个原位置操作,它并不会修改原来的列表。我们可以使用分片赋值来实现心疼的结果:
x = [1,2,3]y = [4,5,6]x[len(x):]=yprint x
输出:
[1, 2, 3, 4, 5, 6, 4, 5, 6]
虽然这么做可行,但是可读性就没有extend好了。
4.index()
index方法用于从列表中找出某个值第一个匹配项的索引位置:
knight = ['we','are','the','python','who','say']a = knight.index('who')print a
输出:
4
当搜索但是who的时候,就会发现它在索引号为4的位置:
print knight[4]
输出:
who
5.insert()
insert方法用于将对象插入到列表中:
number = [1,2,3,4,5]number.insert(3,'four')print number
输出:
[1, 2, 3, 'four', 4, 5]
与extend方法一样,insert方法的操作也可以用分片赋值来实现。
number = [1,2,3,4,5]number[3:3]=['four']print number
输出:
[1, 2, 3, 'four', 4, 5]
6.pop()
pop方法会移除列表中的一个元素(默认是最后一个),并且返回该元素的值:
x = [1,2,3]print x.pop()print xprint x.pop(0)print x
输出:
3[1, 2]1[2]
注:pop方法是唯一一个既能修改列表又返回元素值(除了None)的列表方法。
7.remove()
remove方法用于移除列表中某个值的第一个匹配项:
x = ['to','be','or','not','to','be']x.remove('be')print x
输出:
['to', 'or', 'not', 'to', 'be']
可以看到:只有第一次出现的值被移除了,而不存在于列表中的值是不会移除的。
但值得注意的是,remove是一个没有返回值的原位置改变的方法。它修改了列表却没有返回值,这与pop方法相反。
8.reverse()
reverse方法将列表中的元素反向存放。
y = [1,2,3]y.reverse()print y
输出:
[3, 2, 1]
注意:该方法也改变了列表但不返回值(就像remove和sort)
9.sort()
sort方法用于在原位置对列表进行排序。在“原位置排序”意味着改变原来的列表,从而让其重点额元素能按照一定的顺序排列,而不是简单地返回一个已排序的列表副本。
a = [4,3,5,6,78,1]a.sort()print a
输出:
[1, 3, 4, 5, 6, 78]
前面介绍了结果改变列表却不返回值的方法,在大多数情况下这样的行为方式是很合常理的(如append方法)。但是,sort方法的这种行为方式需要重点讲解一下,因为很多人都被sort方法弄糊涂了。当用户需要一个排好序的列表副本,同时又保留原有列表不变的时候,问题就出现了。为了实现这个功能,我们自然而然就想到了如下做法(实际是错误的):
a = [4,3,5,6,78,1]b = a.sort()print b
输出:
None
因为sort方法修改了a却返回了空值,那么最后得到的是已排序的a以及值为None的b。实现这个功能的正确方法是,首先把a的副本赋值给b,然后对y进行排序,如下例所示:
a = [4,3,5,6,78,1]b = a[:]b.sort()print aprint b
输出:
[4, 3, 5, 6, 78, 1][1, 3, 4, 5, 6, 78]
再次调用a[:]得到的是包含了x所有元素的分片,这是一种很有效率的复制整个列表的方法,只是简单地把a赋值给b是没用的,因为这样做就让a和b都指向同一个列表了。
a = [4,3,5,6,78,1]b = ab.sort()print aprint b
输出:
[1, 3, 4, 5, 6, 78][1, 3, 4, 5, 6, 78]
另一种获取已排序的列表副本的方法是,使用sorted函数:
a = [4,3,5,6,78,1]b = sorted(a)print aprint b
输出:
[4, 3, 5, 6, 78, 1][1, 3, 4, 5, 6, 78]
这个函数实际上可以用任何序列,却总是返回一个列表:
>>> sorted('python')['h', 'n', 'o', 'p', 't', 'y']>>>
如果想把一些元素按相反的顺序排列,可以先使用sort(或sorted),然后再调用reverse方法,或者也可以使用reverse参数。
- python列表常见方法
- python 列表方法
- python列表方法
- Python---列表内置方法
- Python中的列表方法
- python 列表的方法
- python 列表函数&方法
- python列表方法
- Python列表的方法
- python列表方法
- python列表去重方法
- python列表的排序方法
- python对象特殊方法列表
- Python列表函数和方法
- python基础知识之列表--方法
- python---列表list常用方法
- Python列表的常用方法
- python之 列表常用方法
- CImage
- 新零售空间数据库实践一例
- android adb devices 后出现offline问题的解决
- Hiberante学习笔记-缓存
- leetcode
- python列表方法
- php接收GET方法传入的中文参数乱码深究
- Vue2 混入mixins
- 3S基础知识:MapInfo点符号的制作方法
- Java web 定时任务
- 排序算法
- void __attribute__((interrupt, no_auto_psv)) _IC1Interrupt (void)//HALLA: input capture device
- 取消老毛桃赞助
- facebook分享之密钥散列获取