第六章 列表 [ ] lst

45. 为什么需要列表

46. 列表对象的创建

47. 列表的特点

48. 获取指定元素的索引

49. 获取列表中指定的元素(单个元素)

50. 获取列表中多个元素—切片操作

51. 列表元素的判断及遍历

52. 列表元素的添加操作

53. 列表元素的删除操作

54. 列表元素的修改操作

55. 列表元素的排序操作

56. 列表生成式


45. 为什么需要列表

(1)变量可以存储有一个元素,而列表是一个“大容器”可以存储N多个元素,程序可以方便地对这些数据进行整体操作

(2)列表相当于其它语言中的数组

(3)列表示意图

46. 列表对象的创建

(1)列表需要使用中括号[],元素之间使用英文逗号进行分隔

(2)列表的创建方式:①使用中括号;②调用内置函数list()

(3)空列表: lst=[]  lst=list()

print('---------------------46.列表对象的创建------------------')
'''列表的创建方式:①使用中括号'''
lst=['hello','world',98,'hello']
'''②调用内置函数list()'''
lst2=list(['hello','world',98])

47. 列表的特点

(1)列表元素按顺序有序排序

(2)索引映射唯一个数据

(3)列表可以存储重复数据

(4)任意数据类型混存

(5)根据需要动态分配和回收内存

print('---------------------47.列表的特点------------------')
print(lst[0],lst[-3])

48. 获取指定元素的索引

index()

如查列表中存在N个相同元素,只返回相同元素中的第一个元素的索引

如果查询的元素在列表中不存在,则会抛出ValueError

还可以指定的start 和 stop 之间进行查找

print('---------------------48.获取指定元素的索引------------------')
print(lst.index('hello'))
#print(lst.index('a')) ValueError: 'a' is not in list
#print(lst.index('hello',1,3)) # 1-3 不包括 3 --ValueError: 'hello' is not in list
print(lst.index('hello',1,4))  # 1-4 不包括 4

49. 获取列表中指定的元素(单个元素)

获取单个元素

正向索引从0 到 N-1 ,e.g lst[0]

逆向索引从-N 到 -1 ,e.g lst[-N]

指定索引不存在,抛出 IndexError

print('-------------------49.获取列表中指定的元素------------------')
#获取索引为2的元素
print(lst[2])
print(lst[-3])

50. 获取列表中多个元素—切片操作

(1)语法格式 [start : stop : step ]

(2)切片的结果 —— 原列表的拷贝

(3)切片的范围—— [start,stop)  不包括stop

(4)step默认为 1 —— 简写  [start:stop]  [ start : stop]

(5)step为正数

① [: stop :step] — 切片的第一个元素默认为列表的第一个元素 — 从start 开始往后计算切片

②  [start : :step] —  切片的最后一个元素默认为列表的最后一个元素 — 从start 开始往后计算切片

(6)step 为负数

① [: stop :step] — 切片的第一个元素默认为列表的最后一个元素 — 从start 开始往前计算切片

②  [start : :step] —  切片的最后一个元素默认为列表的第一个元素 — 从start 开始往前计算切片

(7)step为负数,省略stop才能得到起点元素,填0是开区间

print('------------------50.获取列表中多个元素——切片操作------------------')
lst3=[10,20,30,40,50,60,70,80]
print(id(lst3))
#strat=1,stop=6,step=1
print(lst3[1:6:1])
print('原列表:',id(lst3))lst4=lst3[1:6:1]
print('切的片段:',id(lst4))print(lst3[::],id(lst3[::])) # 切出来为全部片段,但是id变了

51. 列表元素的判断及遍历

(1)判断指定元素在列表中是否存在

①元素 in 列表名

②元素 not in列表名

(2)列表元素的遍历

For 迭代变量 in 列表名 :


print('------------------51.列表元素的判断及遍历------------------')
'''(1)判断指定元素在列表中是否存在'''
print(10 in lst3)
print(100 in lst3)
print(10 not in lst3)
print(100 not in lst3)
'''(2)列表元素的遍历'''
for item in lst3:print(item, end='\t')
print() # 换行

52. 列表元素的添加操作

增加操作

方法/其他

操作描述

append()

在列表末尾添加一个元素(一次只能添加一个元素)

extend()

在列表末尾至少添加一个元素

insert()

在列表的任意位置添加一个元素

切片

在列表的任意位置添加至少一个元素

à 本质是将原列表中切片出来的元素替换掉


print('------------------52.列表元素的添加操作------------------')
print('---append 在列表末尾添加一个元素---')
lst=[10,20,30]
print('添加元素之前',lst,id(lst))
lst.append(100)
print('添加元素之后',lst,id(lst)) #添加元素之后 id标识 未变
lis2=['hello','world']
lst.append(lis2)
print(lst)
print('---extend() 在列表末尾至少添加一个元素,每一个元素都单独添加进去---')
lst=[10,20,30]
lst.extend(lis2)
print(lst)
print('---insert 在列表的任意位置添加一个元素---')
lst=[10,20,30]
lst.insert(1,90)
print(lst)
#在任意位置上添加N多个元素
print('------切片操作------')
lst5=[True,False,'hello']
lst=['a','b','c','d','e']
lst[1:]=lst5  #切除替换
print(lst)
lst=['a','b','c','d','e']
lst[0:3:1]=lst5
print(lst)

53. 列表元素的删除操作

删除操作

方法/其他

操作描述

remove ()

一次删除一个元素

重复元素只删除第一个

元素不存在,显示 ValueError

pop ()

删除一个指定索引位置上的元素

指定索引不存在,显示IndexError

不指定索引,删除列表中最后一个元素

切片

一次至少删除一个元素

à 本质是将原列表中的切片出来的元素提取出来(切出来的列表)

à真正删除需要用空列表替换

clear()

请空列表

del

删除列表


print('------------------53.列表元素的删除操作------------------')
lst=[10,20,30,40,50,60,30]
print('--remove---')
lst.remove(30)   #一次删除一个元素,重复元素只删除第一个,元素不存在,显示 ValueError
print(lst)
print('---pop---')
lst.pop(0)      #删除一个指定索引位置上的元素.指定索引不存在,显示IndexError
print(lst)
lst.pop()       #不指定索引,删除列表中最后一个元素
print(lst)
print('---切片操作----')
lst=[10,20,30,40,50,60]
new_list=lst[1:3]
print('原列表',lst)
print('切片后:',new_list)  #  --> 本质是将原列表中的元素提取出来'''不产生新的列表对象,而是删除原列表中的内容'''
lst=[10,20,30,40,50,60]
lst[1:3]=[]
print(lst)'''请空列表'''
lst.clear()
print('请空后',lst)'''删除列表对象'''
lst=[10,20,30,40,50,60]
del lst[2]
print(lst)
del lst  # --> 删除整个列表,列表不复存在,也没法输出。
# print(lst) -->NameError: name 'lst' is not defined

54. 列表元素的修改操作

(1)为指定索引的元素赋予一个新值

(2)为指定的切片赋予一个新值

print('------------------54.列表元素的修改操作------------------')
lst=[10,20,30,40]
''''(1)为指定索引的元素赋予一个新值'''
#一次修改一个值
lst[2]=100
print(lst)
''''(2)为指定的切片赋予一个新值'''
lst[1:3]=[300,400,500,600]
print(lst)

55. 列表元素的排序操作

(1)常见的两种方式:

①调用 sort( )方式,列有中的所有元素默认按照从小到大的顺序进行排序(默认为“升序”),可以指定 reverse =True,进行降序排序。【对原列表操作】

②调用内置函数 sorted(),可以指定 reserver=True,进行降序排序,原列表不发生改变。【将产生一个新的列表对象】


print('------------------54.列表元素的排序操作------------------')
print('------调用 sort( )方式------')
lst=[20,40,10,98,54]
#开始排序,sort() --> 默认升序
print('排序前的列表',lst,id(lst))
lst.sort()
print('排序后的列表',lst,id(lst))#通过指定关键字参数,将列表中的元素进行降序排序
lst.sort(reverse=True)
print(lst,id(lst))lst.sort(reverse=False)
print(lst,id(lst))lst=[20,40,10,98,54]
lst.reverse()  # 反转
print(lst)

56. 列表生成式

(1)列表生成式,简称“生成列表的公式”

(2)语法格式:[ i *i for i in range(1,10) ]

(3)注意事项:“表达列表元素的表达式”通常包含自定义变量

print('-----------------57.列表生成式------------------')
lst=[i for i in range(1,10)]
lst2=[i*i for i in range(1,10)]
print(lst,lst2)'''输出 2 4 6 8 10'''
lst3=[i*2 for i in range(1,6)]
print(lst3)
print('------调用内置函数 sorted()------')
lst=[20,40,10,98,54]
print('1',lst,id(lst))
new_list=sorted(lst)
print('1',new_list,id(new_list))#指定关键字参数,将列表中的元素进行降序排序
sorted(lst,reverse=True)
print('3',lst)

Python 课程学习笔记(5)列表 [ ] lst相关推荐

  1. Python课程学习笔记 上

    笔记目录 学前准备 Python解释器安装包 下载 安装 Pycharm 下载 常用的快捷键 Python程序执行机制 语法基础 注释和中文乱码 变量 数据类型 运算符 数值运算符 复合运算符 比较运 ...

  2. Python课程学习笔记 下

    笔记目录 Python 学习笔记 上 面向对象和异常 面向对象 基本理论 定义类 根据类实例化对象 属性相关 方法相关 类的补充 属性补充 方法相关补充 描述器 python对象的生命周期 内存管理机 ...

  3. 【Python】学习笔记之列表生成式

    列表生成式 主要用于生成较为复杂的列表 常用用法 >>> [x * x for x in range(5) if x % 3 !=1 ] [0, 4, 9] #返回除以3余数不为1的 ...

  4. 【B站老男孩IT教育python课程学习笔记】Day02-计算机基础(二)处理器、操作系统

    处理器    通常将运算器和控制器合称为中央处理器(Central Processing Unit,CPU).其中运算器用来主要负责程序运算与逻辑判断,控制器则主要协调各组件和各单元的工作,所以CPU ...

  5. python列表和元组的应用_python学习笔记之列表(list)与元组(tuple)详解

    前言 最近重新再看python的基础知识,感觉自己还是对于这些知识很陌生,需要用的时候还是需要翻书查阅,还是先注重基础吧--我要重新把python的教程阅读一遍,把以前自己忽略的部分学习,加强练习和记 ...

  6. Python学习笔记:列表、字典与集合解析(List, Dict and Set Comprehensions)

    Python学习笔记:列表.字典与集合解析(List, Dict and Set Comprehensions) 1.列表解析 最受喜爱的Python语言特性.过滤一个集合的元素生成一个新的列表. 一 ...

  7. Python入门学习笔记1-Python基础

    Python入门学习笔记1-Python基础 前言:本文介绍了Python学习的前导知识概念以及必记基础函数,如善用help方法查看帮助文档,以及内置对象类型的概念以及常用函数的详解. 一.Pytho ...

  8. cs224w(图机器学习)2021冬季课程学习笔记18 Colab 4:异质图

    诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 Question 1. DeepSNAP异质图简介 1.1 Question 1.1:分配Node ...

  9. cs224w(图机器学习)2021冬季课程学习笔记5 Colab 1:Node Embeddings

    诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 0. Python包导入 1. NetworkX数据获取.可视化 2. 探索NetworkX数据的 ...

最新文章

  1. 深度学习崛起十年:“开挂”的OpenAI革新者
  2. 晶体三极管如何工作的?不,我是问它的真实工作原理
  3. 快速排序 python菜鸟教程-NumPy 排序、条件刷选函数
  4. Python判断 子集
  5. 可配置的逻辑块(CLB)
  6. Python面试常用的高级用法,怎么动态创建类?
  7. Set集合之CopyOnWriteArraySet
  8. Win11 可能解决Tomcat文件bin中startup打不开闪烁进不去的方法
  9. 空间战场态势感知系统
  10. GreenPlum常用数值计算函数
  11. linux tar命令将压缩包解压到指定位置,用tar命令把目标压缩包解压到指定位置
  12. 我读《非暴力沟通》- 马歇尔 *卢森堡 - 区分观察和评论
  13. 最强的优化器:把RAdam和LookAhead协同组合
  14. quartz框架(五)-Trigger相关内容
  15. 解压zip,z01,z02
  16. LabVIEW编程LabVIEW开发视频教学例程与相关资料
  17. php 邮件上传类阿里云邮件上传接口
  18. Centos安装JDK,RPM安装JDK
  19. 高项论文练习--项目范围管理
  20. 《2020年蓝桥杯C++b组》

热门文章

  1. 嵌入式编程语言挑选的原则
  2. 教程篇(7.0) 11. FortiGate安全 入侵防御和拒绝服务 ❀ Fortinet 网络安全专家 NSE 4
  3. 2022CPA审计-第三编-各类交易和账户余额的审计-【完结-有点感觉了?】
  4. 将硬盘转换成GPT分区格式
  5. 怎么判断两个多项式互素_关于两个多元多项式互素问题
  6. php编写程序制作图形验证码,php实现图形验证码详解!
  7. springboot供应商管理系统毕业设计源码121518
  8. Android基于安卓手机个人理财系统
  9. java定时器每天执行一次_定时器-每天23:00执行一次
  10. 得力如何用计算机算行列式,行列式的计算方法(课堂讲解版).docx