列表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)——列表索引、查询、修改、扩展的更多相关文章

  1. Python列表操作与深浅拷贝(5)——数字处理函数、类型判断、列表链表队列栈

    python内建数据结构 分类 数值型: int float complex bool 序列对象: 字符串str 列表list 元组tuple 键值对: 集合set 字典dict 数值型 (list ...

  2. Python列表操作与深浅拷贝(7)——列表深浅拷贝、删除、反转、排序

    列表复制 浅拷贝:简单类型元素全复制,引用类型元素只复制引用 L1 = [3,2,1,[4,5,6],8,'abc'] L1 [3, 2, 1, [4, 5, 6], 8, 'abc'] L2 = L ...

  3. python之路(三)-深浅拷贝

    深浅拷贝用法来自copy模块. 导入模块:import copy 浅拷贝:copy.copy 深拷贝:deepcopy 字面理解:浅拷贝指仅仅拷贝数据集合的第一层数据,深拷贝指拷贝数据集合的所有层.所 ...

  4. Python【第二篇】运算符及优先级、数据类型及常用操作、深浅拷贝

    一.运算符及优先级 Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 1.算数运算符 运算符 描述 实例,a=20,b=10 + 加 a+b输出结果30 - 减 a-b输出结果 ...

  5. python---基础知识回顾(一)(引用计数,深浅拷贝,列表推导式,lambda表达式,命名空间,函数参数逆收集,内置函数,hasattr...)

    一:列表和元组(引用计数了解,深浅拷贝了解) 序列:序列是一种数据结构,对其中的元素按顺序进行了编号(从0开始).典型的序列包括了列表,字符串,和元组 列表是可变的(可以进行修改),而元组和字符串是不 ...

  6. python学习笔记:深浅拷贝的使用和原理

    在理解深浅拷贝之前,我们先熟悉下变量对象和数据类型 1.变量和对象 变量-引用-对象(可变对象,不可变对象) 在python中一切都是对象,比如[1,2],'hello world',123,{'k1 ...

  7. python变量存储和深浅拷贝

    python的变量及其存储 在高级语言中,变量是对内存及其地址的抽象.对于python而言,python的一切变量都是对象,变量的存储,采用了引用语义的方式,存储的只是一个变量的值所在的内存地址,而不 ...

  8. python内存相关以及深浅拷贝讲解

    3.9 内存相关 3.9.1 id,查看内存地址 >>> v1 = [11,22,33] >>> v2 = [11,22,33] >>> prin ...

  9. Python collection模块与深浅拷贝

    collection模块是对Python的通用内置容器:字典.列表.元组和集合的扩展,它包含一些专业的容器数据类型: Counter(计数器):dict子类,用于计算可哈希性对象的个数. Ordere ...

随机推荐

  1. Jinkins自动构建

    Jinkins自动构建 1.项目添加 点击左侧操作栏“新建”,填写项目基础信息,如下图: 2. General配置 2.1 丢弃旧的构建 注:此处勾选丢弃旧的构建,默认天数为1,最大个数建议填写3-5 ...

  2. JAVA字符串转换整数

    public class compint { /** * @param args */ public static void main(String[] args) { // TODO Auto-ge ...

  3. 【Eureka篇三】Eureka如何管理服务调用(6)

    在Eureka Client启动时,将自身的服务的信息发送到Eureka Server.然后进行2调用当前服务器节点中的其他服务信息,保存到Eureka Client中.当服务间相互调用其它服务时,在 ...

  4. [LOJ 2083][UOJ 219][BZOJ 4650][NOI 2016]优秀的拆分

    [LOJ 2083][UOJ 219][BZOJ 4650][NOI 2016]优秀的拆分 题意 给定一个字符串 \(S\), 求有多少种将 \(S\) 的子串拆分为形如 AABB 的拆分方案 \(| ...

  5. linux jdk1.8 32位下载永久地址,ubuntu,centos,java

    链接: https://pan.baidu.com/s/16zSC0HZGFjrTAXrW6eyHzg 提取码: cj7m 复制这段内容后打开百度网盘手机App,操作更方便哦

  6. 记一次SQL调优

    insert优化 如果你在某一时刻有大量的insert操作,一条一条插入是非常耗时的.insert语句本身支持一次插入很多条记录,插入记录数上限受sql语句长度限制,一般一次插个几千条是没问题的.在我 ...

  7. 海边拾贝-G-若干有用的文章(乱序,经常更新)

    若干有用的文章,乱序版本.会经常性修改.     若干Python模块的介绍不错 https://www.cnblogs.com/sui776265233/category/1239819.html ...

  8. tomcat正常运行一段时间后,突然访问不了项目了

    前言 我将项目部署在tomcat服务器上,本来都是好好的,输入网站地址就能访问:但是第二天一早去就会发现网站访问提示404,文件无法找到:我就很懵了. 排查 1.我是用的是chrome浏览器,所以尝试 ...

  9. ScreenToGif——gif动图工具使用说明

    前言 最近因回复了博客园的某篇博文并留言求推荐制作gif动图的工具,随后一名热心园友向我推荐了ScreenToGif 不试不知道,一试我就喜欢上了这款动图制作工具(再也不用PS来制作了,虽然我也不会2 ...

  10. 什么是JavaBean?

    什么是JavaBean? 首先明确的是JavaBean是一种Java类,而且是一种特殊的.可重用的类. 必须具有无参数的构造器,所有的属性都是private的,通过提供setter和getter方法来 ...