Python 课程学习笔记(5)列表 [ ] lst
第六章 列表 [ ] 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相关推荐
- Python课程学习笔记 上
笔记目录 学前准备 Python解释器安装包 下载 安装 Pycharm 下载 常用的快捷键 Python程序执行机制 语法基础 注释和中文乱码 变量 数据类型 运算符 数值运算符 复合运算符 比较运 ...
- Python课程学习笔记 下
笔记目录 Python 学习笔记 上 面向对象和异常 面向对象 基本理论 定义类 根据类实例化对象 属性相关 方法相关 类的补充 属性补充 方法相关补充 描述器 python对象的生命周期 内存管理机 ...
- 【Python】学习笔记之列表生成式
列表生成式 主要用于生成较为复杂的列表 常用用法 >>> [x * x for x in range(5) if x % 3 !=1 ] [0, 4, 9] #返回除以3余数不为1的 ...
- 【B站老男孩IT教育python课程学习笔记】Day02-计算机基础(二)处理器、操作系统
处理器 通常将运算器和控制器合称为中央处理器(Central Processing Unit,CPU).其中运算器用来主要负责程序运算与逻辑判断,控制器则主要协调各组件和各单元的工作,所以CPU ...
- python列表和元组的应用_python学习笔记之列表(list)与元组(tuple)详解
前言 最近重新再看python的基础知识,感觉自己还是对于这些知识很陌生,需要用的时候还是需要翻书查阅,还是先注重基础吧--我要重新把python的教程阅读一遍,把以前自己忽略的部分学习,加强练习和记 ...
- Python学习笔记:列表、字典与集合解析(List, Dict and Set Comprehensions)
Python学习笔记:列表.字典与集合解析(List, Dict and Set Comprehensions) 1.列表解析 最受喜爱的Python语言特性.过滤一个集合的元素生成一个新的列表. 一 ...
- Python入门学习笔记1-Python基础
Python入门学习笔记1-Python基础 前言:本文介绍了Python学习的前导知识概念以及必记基础函数,如善用help方法查看帮助文档,以及内置对象类型的概念以及常用函数的详解. 一.Pytho ...
- cs224w(图机器学习)2021冬季课程学习笔记18 Colab 4:异质图
诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 Question 1. DeepSNAP异质图简介 1.1 Question 1.1:分配Node ...
- cs224w(图机器学习)2021冬季课程学习笔记5 Colab 1:Node Embeddings
诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 0. Python包导入 1. NetworkX数据获取.可视化 2. 探索NetworkX数据的 ...
最新文章
- 深度学习崛起十年:“开挂”的OpenAI革新者
- 晶体三极管如何工作的?不,我是问它的真实工作原理
- 快速排序 python菜鸟教程-NumPy 排序、条件刷选函数
- Python判断 子集
- 可配置的逻辑块(CLB)
- Python面试常用的高级用法,怎么动态创建类?
- Set集合之CopyOnWriteArraySet
- Win11 可能解决Tomcat文件bin中startup打不开闪烁进不去的方法
- 空间战场态势感知系统
- GreenPlum常用数值计算函数
- linux tar命令将压缩包解压到指定位置,用tar命令把目标压缩包解压到指定位置
- 我读《非暴力沟通》- 马歇尔 *卢森堡 - 区分观察和评论
- 最强的优化器:把RAdam和LookAhead协同组合
- quartz框架(五)-Trigger相关内容
- 解压zip,z01,z02
- LabVIEW编程LabVIEW开发视频教学例程与相关资料
- php 邮件上传类阿里云邮件上传接口
- Centos安装JDK,RPM安装JDK
- 高项论文练习--项目范围管理
- 《2020年蓝桥杯C++b组》
热门文章
- 嵌入式编程语言挑选的原则
- 教程篇(7.0) 11. FortiGate安全 入侵防御和拒绝服务 ❀ Fortinet 网络安全专家 NSE 4
- 2022CPA审计-第三编-各类交易和账户余额的审计-【完结-有点感觉了?】
- 将硬盘转换成GPT分区格式
- 怎么判断两个多项式互素_关于两个多元多项式互素问题
- php编写程序制作图形验证码,php实现图形验证码详解!
- springboot供应商管理系统毕业设计源码121518
- Android基于安卓手机个人理财系统
- java定时器每天执行一次_定时器-每天23:00执行一次
- 得力如何用计算机算行列式,行列式的计算方法(课堂讲解版).docx