一. 列表

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. 使用实例:

 a = {}
b = dict()
c = {1:2, 2:3}

2. 主要支持的操作及其时间复杂度如下:

3. 其他:

在python2中,字典的keys()方法和values()方法,返回的直接就是list,而到了python3中,返回的是dictkey和dictvalue的类型。他们可以迭代,但是无法做切片操作等,需要转换为list或者tuple。

字典是无需的,新加入的元素未必就是放在后面的。需要实现有序的字典,可以使用OrderedDict。

四. 元组

1. 使用示例

 a = (1,)
b = tuple(1)

2. 支持的操作

元组支持除了涉及增删改以外的list的操作,二者非常相似。

3. 其他

元组类似一个不可变的list,不能给它添加元素,也不能改变元素里面的值。但是实际上如果元组内部的元素是可变的,也是可以改变的,如图所示:

还有需要注意的是,并非加了括号就代表是元组,如果某个元组初始化时候只有1个元素,必须在这1个元素后面加上逗号,否则就不是元组了(类似我示例代码里写的那样)。

五. for循环

for用于循环可迭代的对象,每次得到其中一个内容。

 a = [1, 3, 4, 5]
for i in a:
print i

六. enumerate

使用示例:

 for i,j in enumerate(('a','b','c')):
print i,j for i,j in enumerate({'a':1,'b':2}):
print i,j for i,j in enumerate('abc'):
print i,j

作用为可迭代对象增加序号,注意的是如果用在dict上的话,序号外迭代出来的元素为dict的key,不包括value。

七. range 和 xrange

使用示例:

 range(1,10,2)
range(10,1,-1)
range(len(lstName))

作用是根据起始,终止,和步长三个参数,生成在一定范围内的数字。range和xrange的区别在于,前者会直接生成整个list,后者则是一个迭代器,在迭代的过程中一次返回一个。

不过在python3中,range和xrange已经合并为range,不过实际的作用与2中的xrange相同。

python基础整理笔记(二)的更多相关文章

  1. python基础整理笔记(九)

    一. socket过程中注意的点 1. 黏包问题 所谓的黏包就是指,在TCP传输中,因为发送出来的信息,在接受者都是从系统的缓冲区里拿到的,如果多条消息积压在一起没有被读取,则后面读取时可能无法分辨消 ...

  2. python基础整理笔记(五)

    一. python中正则表达式的一些查漏补缺 1.  给括号里分组的表达式加上别名:以便之后通过groupdict方法来方便地获取. 2.  将之前取名为"name"的分组所获得的 ...

  3. python基础整理笔记(四)

    一. python 打开文件的方法 1. python中使用open函数打开文件,需要设定的参数包括文件的路径和打开的模式.示例如下: f = open('a.txt', 'r+') 2. f为打开文 ...

  4. python基础整理笔记(一)

    一. 编码 1. 在python2里,加载py文件会对字符进行编码,需要在文件头上的注释里注明编码类型(不加则默认是ascII). # -*- coding: utf-8 -*- print 'hel ...

  5. python基础整理笔记(八)

    一. python反射的方式来调用方法属性 反射主要指的就是hasattr.getattr.setattr.delattr这四个函数,作用分别是检查是否含有某成员.获取成员.设置成员.删除成员. 此外 ...

  6. python基础整理笔记(七)

    一. python的类属性与实例属性的注意点 class TestAtt(): aaa = 10 def main(): # case 1 obj1 = TestAtt() obj2 = TestAt ...

  7. python基础整理笔记(三)

    一. python的几种入参形式:1.普通参数: 普通参数就是最一般的参数传递形式.函数定义处会定义需要的形参,然后函数调用处,需要与形参一一对应地传入实参. 示例: def f(a, b): pri ...

  8. python基础整理笔记(六)

    一. 关于hashlib模块的一些注意点 hashlib模块用于加密相关的操作,代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512, MD ...

  9. python基础学习笔记二之列表

    1.列表 ①列表的创建: ②列表的查询(索引): ③列表的切片操作: 此处要注意到:返回索引0到3的元素,顾头不顾尾. ④列表的增加: s.append()  #直接在结尾追加 s.insert()  ...

随机推荐

  1. win7访问ubuntu所在分区

    用ext2explore就可以了

  2. HTML音乐播放——切歌

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  3. 四、maya python plugin

    只是作简单的了解. 1区别 (1)Python scripts:可以在Maya的script editor 执行.用于扩展maya.cmd模块. The import statement below ...

  4. MYSQL整理的语法

    MYSQL整理的语法 http://www.cnblogs.com/suoning/p/5744849.html

  5. 退出系统时跳出frame框架

    传统的系统界面,有iframe页面,当用户退出系统或者session过期或者非法请求时,都要使当前页面跳转到登录页面.比如用户点击注销的按钮在上面得top.jsp里面,方法:<a href=&q ...

  6. ITop

    iTop,即IT运营门户(IT Operation Portal),是一个开源web应用程序,用于IT环境的日常运营.它基于ITIL最佳实践,而又不拘泥于任何具体流程.它很灵活,可以适应不管是非正 式 ...

  7. Hibernate对象的状态

    站在持久化的角度, Hibernate 把对象分为 4 种状态: 1. 持久化状态 2. 临时状态 3. 游离状态 4. 删除状态 Session 的特定方法能使对象从一个状态转换到另一个状态. 下面 ...

  8. LoadRunner ---检查点

    判断脚本是否执行成功是根据服务器返回的状态来确定的,如果服务器返回的HTTP状态为 200 OK ,那么VuGen 就认为脚本正确地运行了,并且是运行通过的.在绝大多数系统出错时会返回错误页面码? 不 ...

  9. Eclipse中Maven项目添加jar包

    各个标签的含义如下: Overview:显示maven项目的一些基本信息Dependencies:添加jar包的页面Plugins:添加maven插件的页面.比如tomcat-maven-plugin ...

  10. texstudio on ubuntu 12.04

    从官网下载针对12.04的版本的texstudio: http://texstudio.sourceforge.net/ 安装deb包:sudo dpkg -i texstudio_xx.deb 运行 ...