列表list定义

L1 = []
L2 = [1,2,'abc']
L3 = list()
L4 = list(range(5))
L5 = [1,'abc',True,None,[4,5,'abc'],str]
isinstance(L5,list)
True

列表索引访问

L6 = list(range(5,10))
L6
[5, 6, 7, 8, 9]

正索引:从下边界至上边界,从0开始,为列表中每一个元素编号  #为便于理解,认为列表左为下边界,右为上边界

负索引:从上边界至下边界,从-1开始

列表通过索引访问:list[index]  #index为索引

L6[3],L6[-3]
(8, 7)

正负索引不可以超出边界,否则报异常IndeError

L6[9]
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-29-fba6b584fe36> in <module>
----> 1 L6[9] IndexError: list index out of range

列表元素查询

index(value,[start,[stop]]) 通过值value,从指定区间查找列表内的元素是否匹配;时间复杂度为O(n)

从下边界开始,匹配第一个就立即返回索引

匹配不到报异常ValueError

L6.index(5)
0

L6.index(5,2,4)
2

L6.index(9)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-41-85d63fc6c2a2> in <module>
----> 1 L6.index(9) ValueError: 9 is not in list

count(value) 返回列表中匹配value次数;时间复杂度为O(n)

L6.count(5)
2

len() 统计列表长度;时间复杂度为O(1)

len(L6)
5

时间复杂度

O(1) 执行步骤为常数,效率较高

O(n) 随着列表数据规模的增大,执行步骤增大,效率低

修改,增加,插入元素

list[index]=value 列表元素修改;时间复杂度为O(1)

L6[-3] = 5
L6
[5, 6, 5, 8, 9] L6[-1] = L6[-3] + 5
L6
[5, 6, 5, 8, 10]

append(object) 尾部追加,返回值为None,修改自身;时间复杂度为O(1)

L7 = list(range(5,10))
L7
[5, 6, 7, 8, 9] L7.append(12)
L7
[5, 6, 7, 8, 9, 12]

insert(index,object) 指定index处插入object,返回值为None,修改自身;时间复杂度为O(n)

L7.insert(1,12)
L7
[5, 12, 6, 7, 8, 9, 12]

extend(iteratable) 追加可迭代对象的元素,返回值为None,修改自身;时间复杂度为O(1)

L8 = list(range(1,4))
L8
[1, 2, 3] L7.extend(L8)
L7
[5, 12, 6, 7, 8, 9, 12, 1, 2, 3] L7.extend(range(15,19))
L7
[5, 12, 6, 7, 8, 9, 12, 1, 2, 3, 15, 16, 17, 18]

+ 连接操作,将两个列表连接,返回list,产生新列表,原列表不变

L7,L8
([5, 12, 6, 7, 8, 9, 12, 1, 2, 3, 15, 16, 17, 18], [1, 2, 3]) L7 + L8
[5, 12, 6, 7, 8, 9, 12, 1, 2, 3, 15, 16, 17, 18, 1, 2, 3] L7,L8
([5, 12, 6, 7, 8, 9, 12, 1, 2, 3, 15, 16, 17, 18], [1, 2, 3])

* 重复操作,将本列表元素重复n次,返回list,产生新列表,原列表不变

L8 * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3] L8
[1, 2, 3]

最新文章

  1. webstorm 配置scss的问题
  2. Laravel-5.1 ---- 将mews captcha整合到项目中!
  3. Failed to create the part&#39;s controls [eclipse]
  4. [bootstrap] 实用的bootstrap模版下载
  5. (笔记)安装npm需要更改代理kneesocks 1081 1080
  6. LINQ to PostgreSQL Tutorial
  7. 浅谈MS-SQL锁机制
  8. struts2与spring整合问题,访问struts2链接时,spring会负责创建Action
  9. CENTOS纯手工安装LAMP+PHPMYADMIN
  10. 基于Vue.js的大型报告页项目实现过程及问题总结(一)
  11. Oracle-2 - :超级适合初学者的入门级笔记--定义更改约束,视图,序列,索引,同义词
  12. English-英语日常交流语句
  13. Python实现屏幕截图的两种方式
  14. 3D 立体 backface-visibility
  15. Sublime for mac 开发Golang : 一步步环境配置
  16. oracle 日期时间函数
  17. storm0.9.0.1升级安装
  18. JAVA 操作Excel工具类
  19. Statement和PreparedStatement都是用来发送和执行SQL语句的
  20. ToString的格式化字符串

热门文章

  1. 安装npm install app-inspector -g 提示错误
  2. Java面试中遇到的坑【篇二面试干货】
  3. HTML与CSS学习笔记(4)
  4. Maven中使用tomcat:run出现错误org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException
  5. 牛客小白月赛18 Forsaken给学生分组
  6. luoguP3242 [HNOI2015]接水果
  7. VMware exsi虚拟机磁盘扩容
  8. mysql 实现经纬度排序查找功能
  9. java 金额数字转换大写算法
  10. python yield: send, close, throw