记得以前看过一些文章将的是学习知识的记忆是螺旋式上升的,所以需要不停的巩固已有的知识。
在学习Scrapy的过程中,我会时不时地写一些python基础知识的回顾篇,用于回顾一些常用的知识点。
当然作为回顾,我不会写的特别详细,可以作为一个学习的提纲,然后去翻阅资料,这也是一个学习的过程。
还有就是第一手资料应该是官方文档。
1. append
用于在列表的尾部追加新的内容:
>>>lst = [1,2,3]
>>>lst.append(4)
>>>lst
[1,2,3,4]
2.count
统计各个元素在列表中的个数:
>>>['to','be','or','not','to','be'].count('to')
2
>>>x = [ [1,2],1,1,[2,1,[1,2]] ]
>>>x.count([1,2])
1
3.extend
在列表末尾追加另一个序列中的多个值。
>>>a = [1,2,3]
>>>b=[4,5,6]
>>>a.extent(b)
>>>a
[1,2,3,4,5,6]
与连接操作不同之处在于extend方法修改了原本的列表,而连接操作是返回一个新列表:
>>>a = [1,2,3]
>>>b = [4,5,6]
>>>a + b
[1,2,3,4,5,6]
>>>a
[1,2,3]
连接再赋值也具有相同效果,但是效率低于extend方法。
>>>a=a+b
也可以用分片赋值实现相同效果:
>>>a = [1,2,3]
>>>b = [4,5,6]
>>>b = [4,5,6]
>>>a[len(a):] = b
>>>a
[1,2,3,4,5,6]
但是这种方式可读性不如extend方法。
4.index
用于从列表中找出第一个匹配项的索引位置。
>>>knights = ['We' , 'are' , 'the' , 'keights' , 'who' , 'say' , 'ni']
>>>knights.index('who')
4
如果搜索一个列表中没有的就会发生一个异常。
5.insert
将对象插入到列表中:
>>>num = [1,2,3,4,5,6]
>>>num.insert(3 , 'four')
>>>num
[1,2,3,'four',4,5,6]
同样可以用insert实现,但是可读性不如insert:
>>>num = [1,2,3,4,5,6]
>>>num[3:3] = 'four'
>>>num
[1,2,3,'four',4,5,6]
6.pop
移除一个元素,默认移除最后一个,并且返回这个元素的值,索引位置从0开始:
>>> x = [1,2,3]
>>>x.pop()
3
>>>x.pop(0)
>>>x
[2]
7.remove
移出列表中某个值的第一个匹配项,它没有返回值。
8.reverse
将列表中的元素反向存放,无返回值:
>>> x = [1,2,3]
>>>x.reverse()
>>>x
[3,2,1]
9.sort
在原位置对列表进行排序,会改变原来的列表,而不是返回一个列表副本。
>>>x = [4,6,2,1,7,9]
>>>y = x.sort()
>>>print y
none
用上面的方法y是得不到结果的,sort对x重新排序,返回的结果确实空。
需要把x的副本赋值给y,然后再对y进行排序。
>>>x = [4,6,2,1,7,9]
>>>y = x[ : ]
>>>y.sort()
>>>y
[1,2,4,6,7,9]
在赋值整个列表的时候使用分片是一种很效率的方式,只是简单的把x赋值给y是没用的,
x和y会指向同一个列表。
另一种方法是使用sorted函数
>>>x = [4,6,2,1,7,9]
>>>y = sorted(x)
>>>y
[1,2,4,6,7,9]