列表基础

#
# 主题:列表基础
#if __name__ == '__main__':# 列表中可以存储多个元素,每个元素的数据类型可以不相同# 每个元素指向不同的对象,不同的对象存储不同类型的数据myList = ['hello', True, 98]print( id(myList))              # 输出 2686147977800print( type(myList))            # 输出 <class 'list'>print(myList)                   # 输出 ['hello', True, 98]

创建列表

#
# 主题:列表基础
#if __name__ == '__main__':# 列表中可以存储多个元素,每个元素的数据类型可以不相同# 每个元素指向不同的对象,不同的对象存储不同类型的数据myList = ['hello', True, 98]print( id(myList))              # 输出 2686147977800print( type(myList))            # 输出 <class 'list'>print(myList)                   # 输出 ['hello', True, 98]

列表的特点

#
# 主题:列表的特点
#if __name__ == '__main__':a = ['hello', True, 1]# 列表元素按顺序有序排序# 索引映射唯一数据print(a[0], a[-3])# 列表可以储存重复数据# 任意数据类型混存b = ['hello', True, 1, 1]print( list(b))# 系统会自动根据需要动态分配和回收内存

查询列表

#
# 主题:查询列表
#if __name__ == '__main__':a = ['hello', True, 2, True]# 获取列表中指定元素的索引print(a.index('hello'))         # 输出 0print(a.index(True))            # 输出 1# 若列表中有若干相同的元素,则只返回相同元素的第一个元素的索引print(a.index(True))            # 输出 1# 若列表中没有要查询的元素,则报错 ValueError# index(要查找的元素, stop, end) 可以规定查询的范围为 [stop, end)print(a.index('hello', 0, 3))   # 输出 0print(a.index(1, 0, 3))         # 输出 1,因为 True 的值为 1# print(a.index(2, 0, 2))         # 元素 2 不在索引号 0~1 的范围内,会报错ValueError# 根据索引号获取列表中的单个元素print(a[3])                     # 输出 Trueprint(a[-1])                    # 输出 Trueprint(a[-4])                    # 输出 hello# 若列表中没有要查询的索引,则报错 IndexError# 列表名[start: stop: step] 获取列表中多个元素(又称“切片”)# 列表名[start: stop] 查询范围[start, stop)# 切片得到的列表与愿列表是不同的对象,只不过两个有相同的元素a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]print(a[0: 2: 1])print(a[0: 2])              # 默认步长为 1print(a[0: 2:])             # 默认步长为 1print(a[ : 6: 2])           # 默认范围从第一个元素开始print(a[0: : 2])            # 默认范围到最后一个元素结束print(a[ : : -1])           # 默认范围为整个列表,步长为负数表明切片列表元素与原列表元素顺序相反print(a[9: : -1])           # 与上一句输出相同print(a[6: 0: -2])

列表元素的判断与遍历

#
# 主题:列表元素的判断与遍历
#if __name__ = '__main__':lst = [10, 20, 'python', 'hello']print(10 in lst)print(100 in lst)print(10 not in lst)print(100, not in lst)# 遍历列表元素for item in lst:print(item)

添加列表元素

#
# 主题:添加列表元素
#if __name__ == '__main__':lst = [10, 20, 30]lst.append(100)                 # 在原列表的后面添加新元素print(lst)                      # 添加元素后的列表与原列表是同一个对象lst2 = ['hello', 'world']lst.append(lst2)                # lst2 作为对象,整体成为 lst 的一个元素print(lst)                      # [10, 20, 30, 100, ['hello', 'world']]lst.extend(lst2)                # 获取 lst2 中每个数据,并按顺序添加到原数列的后面print(lst)                      # [10, 20, 30, 100, ['hello', 'world'], 'hello', 'world']lst.insert(1, '我在这')          # 在规定的索引处添加自定义对象print(lst)                      # [10, '我在这', 20, 30, 100, ['hello', 'world'], 'hello', 'world']lst[1: : ] = ['a', 'b', 'c']    # 将原列表中规定范围内的元素删掉,再添加新的元素print(lst)

删除列表元素

#
# 主题:删除列表元素
#if __name__ == '__main__':lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]lst.remove(4)               # 删掉指定的元素# 若要删除的元素不在列表中,则报错 ValueErrorprint(lst)                  # [1, 2, 3, 5, 6, 7, 8, 9]lst.pop(1)                  # 删除指定索引上的元素# 若指定的索引超出列表的索引范围,则报错 IndexErrorprint(lst)                  # [1, 3, 5, 6, 7, 8, 9]lst.pop()                   # 未指定索引,则默认删除最后一个元素print(lst)                  # [1, 3, 5, 6, 7, 8]lst1 = lst[1: 3]            # 该操作称为“切片”,lst1 与 lst 是不同的对象,即所对应的存储位置不同print(lst1)                 # [3, 5]print(lst)                  # [1, 3, 5, 6, 7, 8]lst[1: 3] = []              # 该操作前后,都是同一个对象,即 lstprint(lst)                  # [1, 6, 7, 8]lst.clear()                 # 清除列表中所有元素print(lst)                  # []lst.extend(['这', '是', '添', '加', '的', '内', '容'])print(lst)                  # ['这', '是', '添', '加', '的', '内', '容']del lst                     # 删除列表对象,删除了列表的内容和地址# print(lst)                  # 将报错 NameError,报错 lst 没有定义

修改列表元素

#
# 主题:修改列表元素
#if __name__ == "__main__":lst = [1, 2, 3, 4, 5, 6]lst[2] = 30             # 该操作修改了 lst[2] 上的引用# 原先 lst[2] 指向 3 所在对象,后来指向 30 所在对象print(lst)              # [1, 2, 30, 4, 5, 6]lst[1: 3] = [300, 400, 500, 600]print(lst)              # [1, 300, 400, 500, 600, 4, 5, 6]

排序列表元素

#
# 主题:排序列表元素
#if __name__ == '__main__':lst = [20, 40, 10, 98, 54]print('原列表:', lst)lst.sort()                     # 无参数,表明默认升序排序。相当于 lst.sort(reverse=False)# 排序时在原列表的基础上进行的,没有生成新的列表print('升序后:',lst)           # [10, 20, 40, 54, 98]lst.sort(reverse=True)print('降序后:', lst)          # [98, 54, 40, 20, 10]lst1 = sorted(lst)              # 升序排序,产生新的列表对象print(lst1)                     # [10, 20, 40, 54, 98]lst1 = sorted(lst, reverse=True)    # 降序排序,产生新列表对象print(lst1)                     # [98, 54, 40, 20, 10]

列表生成式(生成列表的公式)

#
# 主题:列表生成式(生成列表的公式)
#if __name__ == '__main__':lst = [i*i for i in range(1, 10)]   # for i in range(1, 10) 是 i 的取值范围[1, 10)# i*i 是 lst 的通项(类比数学数列的概念)print(lst)                          # [1, 4, 9, 16, 25, 36, 49, 64, 81]

python源码中的学习笔记_第4章_列表相关推荐

  1. 生成对抗网络入门详解及TensorFlow源码实现--深度学习笔记

    生成对抗网络入门详解及TensorFlow源码实现–深度学习笔记 一.生成对抗网络(GANs) 生成对抗网络是一种生成模型(Generative Model),其背后最基本的思想就是从训练库里获取很多 ...

  2. CNN入门详解及TensorFlow源码实现--深度学习笔记

    CNN入门详解及TensorFlow源码实现–深度学习笔记 ##一.卷积神经网络 ###1.简介 卷积神经网络是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出 ...

  3. android源代码 abi,Android内核源码Abi目录学习笔记

    好记性不如烂笔头,今天要学习的是Android中Abi目录下的代码.下面是基本的学习的笔记的汇总. 首先是include中的头文件的说明. 在cxxabi的头文件中主要需要掌握下面的几个点: 1.这个 ...

  4. vue 拷贝 数组_vue源码中值得学习的方法

    最近在深入研究vue源码,把学习过程中,看到的一些好玩的的函数方法收集起来做分享,希望对大家对深入学习js有所帮助.如果大家都能一眼看懂这些函数,说明技术还是不错的哦. 1. 数据类型判断 Objec ...

  5. python提取发票信息发票识别_(附完整python源码)基于tensorflow、opencv的入门案例_发票识别二:字符分割...

    (附完整python源码)基于tensorflow.opencv的入门案例_发票识别二:字符分割 发布时间:2018-05-14 20:16, 浏览次数:1201 , 标签: python tenso ...

  6. 《Python源码剖析》读书笔记

    <Python源码剖析>电子书下载 http://download.csdn.net/detail/xiarendeniao/5130403 Python源码在官网有下载链接,用ctags ...

  7. stl源码剖析_《STL源码剖析》学习笔记——空间配置器

    目录 1. 空间配置器概述 2. 构造和析构基本工具 3. 空间的配置与释放,std::alloc 4. 内存基本处理工具 1. 空间配置器概述 从STL的实现角度来看,空间配置器的位置尤为重要,整个 ...

  8. puppet最新源码包安装学习笔记

    最近去面试了2家大的电商网站的运维工作,公司对系统的自动化管理,虚拟化,mysql集群,系统性能的优化和shell及python编程的要求都比较高,虽然没有面试成功,但也明白了2013年自己学习的目标 ...

  9. 源码 状态机_LLVM学习笔记(1)--初探源码

    一直耳闻LLVM相比于GCC: well documented 架构灵活,前后端解耦符合龙书的讲解 昨天读到了一篇虽然概括却很周到的llvm入门导引 陈钦霖:LLVM Pass入门导引​zhuanla ...

  10. 从Mybatis源码中,学习到的10种设计模式

    一.前言:小镇卷码家 总有不少研发伙伴问小傅哥:"为什么学设计模式.看框架源码.补技术知识,就一个普通的业务项目,会造飞机不也是天天写CRUD吗?" 你说的没错,但你天天写CRUD ...

最新文章

  1. 扩展卡尔曼滤波EKF与多传感器融合
  2. 神策 FM |「聚焦」细分市场是独角兽诞生的营销关键
  3. 什么时候使用路由再分配?
  4. linux中人脸识别不了,虹软人脸识别在 linux中so文件加载不到的问题
  5. 漫谈新零售:疫情对新零售的十大影响
  6. freecodecamp能学php吗,freeCodeCamp 学习记录——初级算法「01」翻转字符串
  7. 机器学习速成课程 | 练习 | Google Development——编程练习:特征集
  8. 微软开源模糊测试平台 OneFuzz
  9. Java常见面试题:对象的访问定位的两种方式
  10. Xmind 常用快捷键列表(官方推荐)
  11. Kubernetes - - k8s - v1.12.3 一键部署高可用 Prometheus 并实现邮件告警
  12. axure 破解 key
  13. mysql修复表命令_mysql命令修复数据库表
  14. pbs转换html,pbs 脚本实例说明.docx
  15. 气体涡轮流量计和涡街流量计的区别
  16. 移动通信:1G到5G发展过程简析 -- 什么是5G?
  17. 自定义Camera系列之:TextureView + Camera2
  18. 什么软件测试鞋子真假,教你5招辨别真假Yeezy Boost鞋,真真假假你图啥?
  19. 小白学Pytorch 系列--Torch API(1)
  20. storm_spout详解

热门文章

  1. galileo 汉化
  2. 存储过程和存储函数和触发器示例
  3. iOS----------获取通知状态并跳转设置界面设置
  4. 第六周--------职业规划------正确的选择让你少奋斗十年
  5. Excel多表头导出(.net)
  6. Ruby 学习笔记6
  7. ASP.NET Core 中文文档 第四章 MVC(3.9)视图组件
  8. hihocoder 1186
  9. BZOJ2707: [SDOI2012]走迷宫
  10. Arduino 各种模块篇 舵机 Modules - Servo