python基础整理笔记
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python基础整理笔记相关的知识,希望对你有一定的参考价值。
一. 列表
1. 创建实例:
a = [1,2,3]
b = list()
2. 主要支持的操作及其时间复杂度如下:
3. 其他
python中的列表,在内存中实际存储的形式其实是分散的存储,比较类似STL中的vector,会预先分配一定长度的内存,当不够时,会申请新的更大的一块内存,将原有的数据copy过去。删除的情况也是类似的相反情况,所以如果存储的元素数量常有巨变,使用deque来代替比较好。deque是一个双向链表,不会去copy元素。
而从上图中我们也可以看出,判断 x in s的复杂度是 O(n),所以如果只是需要确认是否in的情况,在创建数据存储时就使用set会更好,平均复杂度是O(1)。
三. 字典
1. 使用实例:
1 a = {} 2 b = dict() 3 c = {1:2, 2:3}
2. 主要支持的操作及其时间复杂度如下:
3. 其他:
在python2中,字典的keys()方法和values()方法,返回的直接就是list,而到了python3中,返回的是dictkey和dictvalue的类型。他们可以迭代,但是无法做切片操作等,需要转换为list或者tuple。
字典是无需的,新加入的元素未必就是放在后面的。需要实现有序的字典,可以使用OrderedDict。
四. 元组
1. 使用示例
1 a = (1,) 2 b = tuple(1)
2. 支持的操作
元组支持除了涉及增删改以外的list的操作,二者非常相似。
3. 其他
元组类似一个不可变的list,不能给它添加元素,也不能改变元素里面的值。但是实际上如果元组内部的元素是可变的,也是可以改变的,如图所示:
还有需要注意的是,并非加了括号就代表是元组,如果某个元组初始化时候只有1个元素,必须在这1个元素后面加上逗号,否则就不是元组了(类似我示例代码里写的那样)。
五. for循环
for用于循环可迭代的对象,每次得到其中一个内容。
1 a = [1, 3, 4, 5] 2 for i in a: 3 print i
六. enumerate
使用示例:
1 for i,j in enumerate((‘a‘,‘b‘,‘c‘)): 2 print i,j 3 4 for i,j in enumerate({‘a‘:1,‘b‘:2}): 5 print i,j 6 7 for i,j in enumerate(‘abc‘): 8 print i,j
作用为可迭代对象增加序号,注意的是如果用在dict上的话,序号外迭代出来的元素为dict的key,不包括value。
七. range 和 xrange
使用示例:
1 range(1,10,2) 2 range(10,1,-1) 3 range(len(lstName))
作用是根据起始,终止,和步长三个参数,生成在一定范围内的数字。range和xrange的区别在于,前者会直接生成整个list,后者则是一个迭代器,在迭代的过程中一次返回一个。
不过在python3中,range和xrange已经合并为range,不过实际的作用与2中的xrange相同。
以上是关于python基础整理笔记的主要内容,如果未能解决你的问题,请参考以下文章