Python列表操作与深浅拷贝(6)——列表索引、查询、修改、扩展
2024-08-25 21:32:20
列表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]
最新文章
- webstorm 配置scss的问题
- Laravel-5.1 ---- 将mews captcha整合到项目中!
- Failed to create the part&#39;s controls [eclipse]
- [bootstrap] 实用的bootstrap模版下载
- (笔记)安装npm需要更改代理kneesocks 1081 1080
- LINQ to PostgreSQL Tutorial
- 浅谈MS-SQL锁机制
- struts2与spring整合问题,访问struts2链接时,spring会负责创建Action
- CENTOS纯手工安装LAMP+PHPMYADMIN
- 基于Vue.js的大型报告页项目实现过程及问题总结(一)
- Oracle-2 - :超级适合初学者的入门级笔记--定义更改约束,视图,序列,索引,同义词
- English-英语日常交流语句
- Python实现屏幕截图的两种方式
- 3D 立体 backface-visibility
- Sublime for mac 开发Golang : 一步步环境配置
- oracle 日期时间函数
- storm0.9.0.1升级安装
- JAVA 操作Excel工具类
- Statement和PreparedStatement都是用来发送和执行SQL语句的
- ToString的格式化字符串
热门文章
- 安装npm install app-inspector -g 提示错误
- Java面试中遇到的坑【篇二面试干货】
- HTML与CSS学习笔记(4)
- Maven中使用tomcat:run出现错误org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException
- 牛客小白月赛18 Forsaken给学生分组
- luoguP3242 [HNOI2015]接水果
- VMware exsi虚拟机磁盘扩容
- mysql 实现经纬度排序查找功能
- java 金额数字转换大写算法
- python yield: send, close, throw