Python列表操作与深浅拷贝(6)——列表索引、查询、修改、扩展
列表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]
Python列表操作与深浅拷贝(6)——列表索引、查询、修改、扩展的更多相关文章
- Python列表操作与深浅拷贝(5)——数字处理函数、类型判断、列表链表队列栈
python内建数据结构 分类 数值型: int float complex bool 序列对象: 字符串str 列表list 元组tuple 键值对: 集合set 字典dict 数值型 (list ...
- Python列表操作与深浅拷贝(7)——列表深浅拷贝、删除、反转、排序
列表复制 浅拷贝:简单类型元素全复制,引用类型元素只复制引用 L1 = [3,2,1,[4,5,6],8,'abc'] L1 [3, 2, 1, [4, 5, 6], 8, 'abc'] L2 = L ...
- python之路(三)-深浅拷贝
深浅拷贝用法来自copy模块. 导入模块:import copy 浅拷贝:copy.copy 深拷贝:deepcopy 字面理解:浅拷贝指仅仅拷贝数据集合的第一层数据,深拷贝指拷贝数据集合的所有层.所 ...
- Python【第二篇】运算符及优先级、数据类型及常用操作、深浅拷贝
一.运算符及优先级 Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 1.算数运算符 运算符 描述 实例,a=20,b=10 + 加 a+b输出结果30 - 减 a-b输出结果 ...
- python---基础知识回顾(一)(引用计数,深浅拷贝,列表推导式,lambda表达式,命名空间,函数参数逆收集,内置函数,hasattr...)
一:列表和元组(引用计数了解,深浅拷贝了解) 序列:序列是一种数据结构,对其中的元素按顺序进行了编号(从0开始).典型的序列包括了列表,字符串,和元组 列表是可变的(可以进行修改),而元组和字符串是不 ...
- python学习笔记:深浅拷贝的使用和原理
在理解深浅拷贝之前,我们先熟悉下变量对象和数据类型 1.变量和对象 变量-引用-对象(可变对象,不可变对象) 在python中一切都是对象,比如[1,2],'hello world',123,{'k1 ...
- python变量存储和深浅拷贝
python的变量及其存储 在高级语言中,变量是对内存及其地址的抽象.对于python而言,python的一切变量都是对象,变量的存储,采用了引用语义的方式,存储的只是一个变量的值所在的内存地址,而不 ...
- python内存相关以及深浅拷贝讲解
3.9 内存相关 3.9.1 id,查看内存地址 >>> v1 = [11,22,33] >>> v2 = [11,22,33] >>> prin ...
- Python collection模块与深浅拷贝
collection模块是对Python的通用内置容器:字典.列表.元组和集合的扩展,它包含一些专业的容器数据类型: Counter(计数器):dict子类,用于计算可哈希性对象的个数. Ordere ...
随机推荐
- 6.Java基础_Java自增自减/关系/逻辑/三元运算符
/* 自增自减运算符 关系运算符 逻辑运算符 三元运算符 (同C++) */ public class OperatorDemo01 { public static void main(String[ ...
- Scrapy-splash
Scrapy-splash Splash是一个javascript渲染服务.它是一个带有HTTP API的轻量级Web浏览器,使用Twisted和QT5在Python 3中实现.QT反应器用于使服务完 ...
- Paper | Quality assessment of deblocked images
目录 1. 故事 2. 失真变化 3. 方法(PSNR-B) 4. 实验 这篇文章提出了一个PSNR-B指标,旨在衡量 压缩图像的块效应强度 或 去块效应后的残留块效应强度(比较去块效应算法的优劣). ...
- C++ TCP客户端网络消息发送接收同步实现
废话不多说, 直入主题, 我们在写客户单的时候希望在哪里发消息出去,然后在哪里返回消息(同步), 然后继续往下运行-, 而不是在这里发送了一个消息给服务端, 在另一个地方接受消息(异步) , 也不知道 ...
- js -- 数组的操作(自己的常用备查)
1.数组的定义 var arr = [],或者 var arr = [1,2,3,4,5] 2.数组的使用 >数组的合并 concat ,,]; ,]; a = a.concat(b); con ...
- Java实现输出“杨辉三角”
import java.util.Scanner; public class SumTrangles { public static void func(int n) { if (n < 0) ...
- 爬虫——控制台抓包和requests.post()发送请求
控制台抓包 打开方式及常用选项 1.打开浏览器,F12打开控制台,找到Network选项卡 2.控制台常用选项 1.Network: 抓取网络数据包 1.ALL: 抓取所有的网络数据包 2.XHR:抓 ...
- 基于仿射的非刚体配准方法(i) 法向
为啥闲呢,因为work干完了. 为啥补档呢,因为有新work了. 呃,因为新work让人自闭. 我现在干完了两部分.一是把最近邻的部分迁移过来. 二是求法向. 首先是给三个点,就能确定平面——因为是三 ...
- Kubernetes configMap(配置文件存储)
Kubernetes configMap(配置文件存储) 官方文档:https://kubernetes.io/docs/tasks/configure-pod-container/configure ...
- 【UOJ#61】【UR #5】怎样更有力气(最小生成树)
[UOJ#61][UR #5]怎样更有力气(最小生成树) 题面 UOJ 题解 最最最暴力的想法是把所有边给处理出来然后跑\(MST\). 考虑边权的情况,显然离线考虑,把么一天按照\(w_i\)进行排 ...