阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

常见数据结构-list列表

427次阅读
没有评论

共计 2468 个字符,预计需要花费 7 分钟才能阅读完成。

一、什么情况下使用列表?

  • 思考

    存储 5 个人的年龄,求他们的平均值

    age1 = 18 age2 = 19 age3 = 20 age4 = 21 age5 = 22
  • 思考

    存储 100 个人的年龄

  • 解决

    使用列表

二、基本使用

  • 本质

    是一个有序集合

  • 创建列表

    ''' 创建列表 格式:列表名 = [元素 1, 元素 2, ……, 元素 n] ''' # 创建空列表 li1 = [] print(li1, type(li1)) # 创建带有元素的列表 # 注意:列表中元素的类型可以不同,但是在今后的开发中一般不存在这种状况 li2 = [1, 2, 3, 4, 5, "good", True] print(li2)
  • 列表元素的访问

    # 列表元素的访问 li3 = [1,2,3,4,5] # 往列表末尾添加元素 li3.append(6) # 获取元素 列表名 [下标] print(li3[2]) # print(li3[9]) #下标超出范围,溢出 # print(li3[-1]) # 下标可以是负数,- 1 表示最后一个元素的下标,- 2 表示倒数第二个,依次类推 # 修改元素 列表名 [下标] = 值 li3[2] = 33 # li3[6] = 10 #下标不存在 print(li3) # 截取列表 print(li3[1:3]) print(li3[1:]) print(li3[:3])
  • 列表操作

    # 列表相加(列表组合) li4 = [1,2,3] li5 = [4,5,6] li6 = li4 +li5 print(li6)
    # 列表相乘(列表重复) li7 = [7,8,9] li8 = li7 * 3 print(li7) print(li8)
    # 成员判断 li9 = [1,2,3] print(1 in li9) print(4 in li9)

三、二维列表

概念:列表中的元素是一位列表的列表

本质:一维列表

li1 = [[1,2,3], [4,5,6], [7,8,9]] print(li1[1][1])

四、内置功能

  • append(obj)

    在列表的末尾添加一个新的元素

    li1 = [1,2,3,4,5] li1.append(6) li1.append([7,8,9]) print(li1)
  • extend(seq)

    在列表的末尾一次追加多个元素

    li2 = [1,2,3,4,5] li2.extend([6,7,8]) print(li2)
  • insert(index, obj)

    将元素 obj 按下标插入列表,不会覆盖原数据,原数据会按顺序后移

    li3 = [1,2,3,4,5] li3.insert(2, 100) print(li3)
  • pop(index=-1)

    移除列表中指定下标出的元素,默认移除最后一个,返回被删掉的数据

    li4 = [1,2,3,4,5] data = li4.pop() print(data, li4)
  • remove(obj)

    移除列表中第一次出现的 obj 元素

    li5 = [1,2,3,4,5,2,4,2,5,6,7] li5.remove(2) print(li5)
  • clear()

    清空列表

    li6 = [1,2,3,4,5] li6.clear() print(li6)
  • count(obj)

    返回元素 obj 在列表中出现的次数

    li7 = [1,2,3,4,5,2,4,2,5,6,7] print(li7.count(2))
  • len(seq)

    返回列表中元素的个数

    li8 = [1,2,3,4,5] print(len(li8))
  • index(obj)

    在列表中获取元素第一次出现的下标,没有则会抛出 ValueError 异常

    li9 = [1,2,3,4,5,2,4,2,5,6,7]
    print(li9.index(2))
    
  • max(seq)

    返回列表中最大的元素

    print(max([2,3,4,1,4,6,7,3]))
    
  • min(seq)

    返回列表中最小的元素

  • reverse()

    列表倒序

    li10 = [1,2,3,4,5] li10.reverse() print(li10)
  • sort()

    根据 func 函数给定的规则进行列表元素的排序,默认升序

    li11 = [2,1,3,5,4] li11.sort() print(li11)
  • list(seq)

    将其他类型的集合转为列表类型

    str1 = "baism"
    li12 = list(str1)
    print(li12, type(li12))
    

五、内存问题

  • 赋值

    • == 与 is

      num1 = 1 num2 = 1 print(id(num1), id(num2)) print(num1 == num2) print(num1 is num2) num3 = 401 num4 = 401 print(id(num3), id(num4)) print(num3 == num4) print(num3 is num4)
    • 赋值

      a = [1,2,3,4,5] b = a print(id(a), id(b)) print(a == b) print(a is b)
      c = [1,2,3,4,5,[7,100,9]]
      d = c
      print(c == d)
      print(c is d)
      c[5][0] = 60
      print(c)
      print(d)
      

常见数据结构 -list 列表

  • 浅拷贝

    只拷贝表层元素

    from copy import copy a = [1,2,3,4,5] b = copy(a) print(id(a), id(b)) print(a == b) print(a is b) c = [1,2,3,[4,5,6]] d = copy(c) print(id(c), id(d)) print(c == d) print(c is d) print(id(c[3]), id(d[3])) print(c[3] == d[3]) print(c[3] is d[3])

常见数据结构 -list 列表
常见数据结构 -list 列表

  • 深拷贝

    注意:不论深拷贝还是浅拷贝都会在内存中生成一片新的内容空间 (把拷贝的内容在内存中重新创建一份)

    两者有区别的前提:元素中有另外的列表

    说明:深拷贝在内存中重新创建所有子元素

    from copy import deepcopy a = [1,2,3,4,5] b = deepcopy(a) print(id(a), id(b)) print(a == b) print(a is b) c = [1,2,3,4,5,[6,7,8]] d = deepcopy(c) print(id(c), id(d)) print(c == d) print(c is d) print(id(c[5]), id(d[5])) print(c[5] == d[5]) print(c[5] is d[5])

常见数据结构 -list 列表
常见数据结构 -list 列表

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-05-26发表,共计2468字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19348
评论数
4
阅读量
7802461
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...
多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞...
飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛 NAS 玩转 Frpc 并且配置,随时随地直连你的私有云 大家好,我是星哥,最近在玩飞牛 NAS。 在数...
亚马逊云崩完,微软云崩!当全球第二大云“摔了一跤”:Azure 宕机背后的配置风险与警示

亚马逊云崩完,微软云崩!当全球第二大云“摔了一跤”:Azure 宕机背后的配置风险与警示

亚马逊云崩完,微软云崩!当全球第二大云“摔了一跤”:Azure 宕机背后的配置风险与警示 首先来回顾一下 10...
【1024程序员】我劝你赶紧去免费领一个AWS、华为云等的主机

【1024程序员】我劝你赶紧去免费领一个AWS、华为云等的主机

【1024 程序员】我劝你赶紧去免费领一个 AWS、华为云等的主机 每年 10 月 24 日,程序员们都会迎来...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比 星哥玩云,带你从小白到上云高手。今天咱们就来聊聊——什...
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...
支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare 也瘫了连监控都挂,根因藏在哪? 最近两天的互联网堪称“故障...
星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

  星哥带你玩飞牛 NAS-16:不再错过公众号更新,飞牛 NAS 搭建 RSS 对于经常关注多个微...
星哥带你玩飞牛NAS-5:飞牛NAS中的Docker功能介绍

星哥带你玩飞牛NAS-5:飞牛NAS中的Docker功能介绍

星哥带你玩飞牛 NAS-5:飞牛 NAS 中的 Docker 功能介绍 大家好,我是星哥,今天给大家带来如何在...