没有合适的资源?快使用搜索试试~ 我知道了~
首页Python的学习心得和知识总结(三)|Python基础(列表、元组、字典和集合)
Python的学习心得和知识总结(三)|Python基础(列表、元组、字典和集合)
5星 · 超过95%的资源 8 下载量 77 浏览量
更新于2023-05-03
评论
收藏 386KB PDF 举报
2020年4月5日13:32:07 注:因为最近3天是清明节,中国以国家的名义纪念 在此次瘟疫中丧生的同胞。本人的这篇博客 全文将以 黑色和灰色 来书写,以谨记国殇。 接下来,我们学习新的知识 Python序列。 序列 什么是序列 列表(List)是什么 列表对象的常用方法列表对象的四种创建列表元素的增加删除列表元素的访问计数列表对象的切片操作列表元素的排序逆序列表相关的内置函数 多维列表(List的延伸) 二维列表 元组(Tuple)是什么元组的创建删除元组的访问计数元组的内置函数生成器推导式创建元组元组的内容小结 字典(Dictionary)是什么字典的创建删除字典的键值访问字典元素的增
资源详情
资源评论
资源推荐
Python的学习心得和知识总结(三)的学习心得和知识总结(三)|Python基础(列表、元组、字典和集合)基础(列表、元组、字典和集合)
2020年4月5日13:32:07
注:因为最近3天是清明节,中国以国家的名义纪念 在此次瘟疫中丧生的同胞。本人的这篇博客 全文将以 黑色和灰色 来书写,以谨记国殇。
接下来,我们学习新的知识 Python序列。
序列序列 什么是序列 列表(List)是什么 列表对象的常用方法列表对象的四种创建列表元素的增加删除列表元素的访问计数列表对象的切片操作列表元素的排序逆序列表相关的内置函数
多维列表(List的延伸) 二维列表 元组(Tuple)是什么元组的创建删除元组的访问计数元组的内置函数生成器推导式创建元组元组的内容小结 字典(Dictionary)是什么字典的创建删
除字典的键值访问字典元素的增删字典的序列解包字典的数据存储字典的底层原理(存取) 集合(Set)是什么集合的创建删除集合的相关操作
什么是序列什么是序列
序列就是一种数据存储方式数据存储方式,用来存储一系列的数据。Python里面的序列结构主要有:字符串、列表、元组、字典和集合。里面的序列结构主要有:字符串、列表、元组、字典和集合。 今天我们先学习列表和元组部分。
序列在内存之中 就是一块用来存放多个值的连续的内存空间。比如:一个整数序列[10,20,30,40],就可以表示为如下:【10】【20】【30】【40】,这是连续存放连续存放的。
注:之前学的字符串 也是序列的一种,因为它叫 字符序列:里面存的都是字符。字符序列:里面存的都是字符。 而列表可以存储任何类型的对象(列表可以是任意对象的序列)。即:字符串和列表都是序列类即:字符串和列表都是序列类
型,字符串是字符序列型,字符串是字符序列 列表是任何元素的序列。列表是任何元素的序列。
而之前我们也说过:在Python里面 “一切皆对象一切皆对象”,因此在内存之中,a=[10,20,30,40] 实质的存储格式如下:
如上图 这个序列(准确的来说 是列表),【】里面存储了4个对象(也就是上图最右边的4个数字 对象);四个对象创建OK后,会把对象的对象的ID 依次存在中间的四个空格里面(这4个
是连续的地址空间);最后 整个列表也是一个对象,再把其地址 给到变量a。(最后变量a里面存储的就是列表的起始地址起始地址)也即:a[1] = 20.
列表(列表(List)是什么)是什么
列表是内置可变序列,是包含多个元素的有序且连续的内存空间内置可变序列,是包含多个元素的有序且连续的内存空间(存储任意数目存储任意数目 任意类型的数据集合任意类型的数据集合)。。 列表的定义 标准语法格式如下所示:
a=[10,20,30,40]
里面的10 20 30 40倍称为是 列表a的元素。当然这4个元素都是数字,而我们的列表是可以存储任意类型的元素存储任意类型的元素,如下也是可以的:
a=[10,20.0,‘China’,True]
注:列表对象的大小不是固定不变的,可以随着需要进行改变。如下:
列表对象的常用方法列表对象的常用方法
其背景如下:
>>> a=[10,20.0,'China',True] >>> b=[11,21.0,'HeNan',True] >>> a
[10, 20.0, 'China', True] >>> b
[11, 21.0, 'HeNan', True] >>>
增加元素
>>> a.append(1840) #将元素 1840 增加到列表a的尾部
>>> a
[10, 20.0, 'China', True, 1840] >>> a.extend(b) #将列表b的全部元素 都续到列表a的尾部
>>> a
[10, 20.0, 'China', True, 1840, 11, 21.0, 'HeNan', True] >>> b.insert(4,1942) #将在列表b的 指定位置 插入元素1942
>>> b
[11, 21.0, 'HeNan', True, 1942] >>>
删除元素
>>> a
[10, 20.0, 'China', True, 1840, 11, 21.0, 'HeNan', True] >>> a.remove(21.0) #在列表a里面删除 首次出现 的指定元素21.0
>>> a
[10, 20.0, 'China', True, 1840, 11, 'HeNan', True] >>> len(a) #返回该列表里面元素的个数
8
>>> a.pop(7) #删除 并 返回该列表指定位置index处的元素。通常是最后一个元素
True
>>> a
[10, 20.0, 'China', True, 1840, 11, 'HeNan'] >>> b
[11, 21.0, 'HeNan', True, 1942] >>> b.clear() #删除该列表里面所有元素 并不是删除我这个列表对象
>>> b
[] >>>
查看元素
>>> b
[] >>> b.index(1) #是返回该列表里面 1 这个值的第一次出现的索引位置。不存在则抛异常
Traceback (most recent call last):
File "", line 1, in
b.index(1)
ValueError: 1 is not in list
>>> a
[10, 20.0, 'China', True, 1840, 11, 'HeNan'] >>> a.index(1) #1 这个值是有的,True就是1.其索引位置为3 如下
3
>>> a[3] True
>>>
>>> a
[10, 20.0, 'China', True, 1840, 11, 'HeNan'] >>> a.append(True)
>>> a
[10, 20.0, 'China', True, 1840, 11, 'HeNan', True] >>> a.count(1) # 返回指定元素 1 出现的总次数
2
>>>
列表操作
>>> c=[5,3,4,1,2] >>> c
[5, 3, 4, 1, 2] >>> c.reverse() #该列表 所有元素原地翻转
>>> c
[2, 1, 4, 3, 5] >>> c.sort() #列表元素 进行排序(默认从小到大)
>>> c
[1, 2, 3, 4, 5] >>> d=c.copy() #copy做的是一个 浅拷贝
>>> d
[1, 2, 3, 4, 5] >>>
列表对象的四种创建列表对象的四种创建
一个列表对象的生成方式可以有以下四种:
基本语法[]创建
list()函数创建
range()函数创建
推导式生成列表
OK,下面逐一进行列举:
使用使用[] 方式(最基本方式(最基本 最简单最简单 最常见)来进行创建对象。最常见)来进行创建对象。
>>> c=[5,3,4,1,2] >>> b=[] #创建空列表对象
>>> c
[5, 3, 4, 1, 2] >>> b
[] >>>
使用使用list()来创建对象:可以将任何可以迭代的数据转化为列表来创建对象:可以将任何可以迭代的数据转化为列表
>>> a=list() #创建一个空的列表对象
>>> a
[] >>> b=list(range(10)) #传递数字 转化为列表对象
>>> b
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> list("我爱中国") #把字符串里面的字符 挨个转化到列表
['我', '爱', '中', '国'] >>>
range()创建整数列表:非常方便的创建整数列表对象创建整数列表:非常方便的创建整数列表对象
其语法格式为:
range(start,end,step)
start:表示起始数字,默认为:表示起始数字,默认为0 optional
end :表示结尾数字:表示结尾数字 required ——————>同样:包头不包尾,即不会有同样:包头不包尾,即不会有end的的
step:表示步长,默认为:表示步长,默认为1 optional
在Python3里面,range()返回的是一个 range对象(可迭代化的数据可迭代化的数据),而不是列表。如上面所示,我们可以借助于list()函数来将其转化成列表对象。实例如下:
>>> list(range(3,9,2)) #包头不包尾
[3, 5, 7] >>> list(range(10,2,-1)) #步长-1 从【start,end) 即:倒着数
[10, 9, 8, 7, 6, 5, 4, 3] >>> list(range(2,-10,-1)) #同上,只是结束直到 -9
[2, 1, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9] >>> list(range(2,2,-1)) #这也是倒着数 可是木有数据
[] >>>
注:倒着数(步长为负)注:倒着数(步长为负) 需要需要start>end 才会有数据。才会有数据。 否则都会为空。否则都会为空。
>>> list(range(-3,-11,-2))
[-3, -5, -7, -9] >>>
解释上面: -3 > -10,然后步长为-2。因此开始数:第一个肯定为-3 顺着坐标轴往左往左走,包头不包尾 最后不要-11。
下面看一下下面看一下 最后一种创建方法:推导式生成列表最后一种创建方法:推导式生成列表
使用列表推导式可以非常方便的创建列表(可以创建非常复杂的一些序列),且广泛使用于 for循环和if判断中。下面看一下一些实例:
>>> a=[i+1 for i in range(10)] #循环创建多个元素:0到9 执行表达式:1到10
>>> a
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >>> a=[i*2 for i in range(10)] #循环创建多个元素:0到9 执行表达式:0到18
>>> a
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18] >>> a=[i*2 for i in range(100)if i%9==0] #循环创建多个元素:0到99 执行表达式。得到0 2 4--198,最后再用if进行过滤
>>> a
[0, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198] >>>
列表元素的增加删除列表元素的增加删除
之前也说了列表的内容不是固定不变的,当列表里面执行增加删除元素的时候当列表里面执行增加删除元素的时候 列表会自动的进行内存管理列表会自动的进行内存管理,这一点就极大的方便了程序开发工作。我们这里类比一下C语言里面的 数
组(顺序存储结构),虽然Python会自动的进行内存的管理 但是效率效率问题是非常严重的(涉及到大量数据的移动涉及到大量数据的移动 拷贝等拷贝等)。当然 为了提高列表的操作效率,这也就限制(尽量)我
们在列表尾部尾部进行增删数据。
下面首先说一下增加的一些方法:下面首先说一下增加的一些方法:
append()方法:原地修改列表对象,是真正的在列表尾部进行增加。其效率也就非常高(原地的意思:不创建新的列表对象)
>>> a=[1,2] >>> a
[1, 2] >>> a.append("hello")
>>> a
[1, 2, 'hello'] >>> a.append(["world",True])
>>> a
[1, 2, 'hello', ['world', True]] >>>
加法+运算符操作:
它不是在尾部添加元素,而是创建新的列表对象。也就是将两个列表合并,将它俩里面的元素里面的元素 依次都拷贝到新的列表对象里面依次都拷贝到新的列表对象里面。(涉及到大量的拷贝操作,不推荐使用于大量元素的
场景)
>>> a=[2,8] >>> b=["佳人"] >>> id(a)
2714613982208
>>> a=a+b
>>> a
[2, 8, '佳人'] >>> id(a) #这里产生了新的列表对象
2714614348416
>>>
insert()插入元素:
使用insert()、remove()、pop()、del()等函数的时候,若是操作的元素不是列表尾部的元素。那么就会涉及到被处理的指定元素的后面元素的 移动操作。这点也可以类比C语言进行学
习。如下:
>>> a
[1, 2, 'hello', ['world', True]] >>> a.insert(2,3)
>>> a
[1, 2, 3, 'hello', ['world', True]] >>> a.remove(3)
>>> a
[1, 2, 'hello', ['world', True]] >>> a.pop(1)
2
>>> a
[1, 'hello', ['world', True]] >>>
乘法 X 的使用
使用乘法是可以扩展列表的,进而来生成一个新的列表对象。这个新的对象是原列表元素的多次重复。这个新的对象是原列表元素的多次重复。
>>> a=[6] >>> b=a*6
>>> a
[6] >>> b
[6, 6, 6, 6, 6, 6] >>>
这里小结一下:适用于乘法操作的有适用于乘法操作的有 字符串字符串 列表列表 元组。元组。
接下来说一下列表元素删除的一些方法:接下来说一下列表元素删除的一些方法:
del()函数:删除列表指定位置的元素。(也是后面元素值的向前覆盖)
pop()函数:删除 并 返回指定位置的元素。若是未指定位置,则默认删除列表尾部元素
>>> a=[1,2,3,4,5] >>> a
[1, 2, 3, 4, 5] >>> del a[1] >>> a
[1, 3, 4, 5] >>> a.pop()
5
>>> a
[1, 3, 4] >>> a.pop(1)
3
>>> a
[1, 4] >>>
remove()方法:删除首次出现首次出现的 指定指定元素。若是该元素不存在 则抛异常
>>> b=[2,4,5,6,7,2,3,4,5] >>> b
[2, 4, 5, 6, 7, 2, 3, 4, 5] >>> b.remove(4)
>>> b
[2, 5, 6, 7, 2, 3, 4, 5] >>> b.remove(9)
Traceback (most recent call last):
File "", line 1, in
b.remove(9)
ValueError: list.remove(x): x not in list
>>>
看了上面的增加删除,其实质上都是一样的:都是数组元素的拷贝 移动。
列表元素的访问计数列表元素的访问计数
对于元素的访问,我们最常见的就是通过 下标。也就是索引 【0,len-1】,超出范围则抛异常。
下面我们讲一下 index()函数的使用,它可以获得指定元素在列表中它可以获得指定元素在列表中 首次出现的索引位置。首次出现的索引位置。 其使用语法为:里面的里面的start end是指定了搜索的范围,可以省略。是指定了搜索的范围,可以省略。
index(value,start,end)
如下:
>>> a=[1,2,3,4,5,5,4,3,2,1,1,2,3,4,5] >>> a
[1, 2, 3, 4, 5, 5, 4, 3, 2, 1, 1, 2, 3, 4, 5] >>> a.index(2)
1
>>> a.index(2,5,9)
8
>>> a.index(2,9)
11
>>>
使用使用count()函数函数 可以获得指定元素在列表中出现的次数;可以获得指定元素在列表中出现的次数;len()函数是返回列表里面元素个数函数是返回列表里面元素个数
>>> a
[1, 2, 3, 4, 5, 5, 4, 3, 2, 1, 1, 2, 3, 4, 5] >>> a.count(4)
3
>>>
注:使用上面的count 就可以判断一个元素是否存在于列表之中(返回值0 自然是不存在);但是我们也可以使用 in关键字来判断(返回True,False)。
>>> a.count(4)
3
>>> a
[1, 2, 3, 4, 5, 5, 4, 3, 2, 1, 1, 2, 3, 4, 5] >>> 10 in a
False
>>> 4 in a
True
>>>
列表对象的切片操作列表对象的切片操作
类似于前面字符串的切片操作,列表对象也有相应的切片操作。对于切片操作:其广泛使用于切片操作:其广泛使用于 列表、元组和字符串等。列表、元组和字符串等。 其格式如下:
slice[起始偏移量start:终止偏移量end:步长step]
上面的step可以省略,下面是一些具体的实例:
同理,先演示三个量都是正数正数的情形:
背景如下:
>>> list=[10,20,30] >>> list
[10, 20, 30]
操作和说明操作和说明 例子例子 最终结果最终结果
剩余11页未读,继续阅读
weixin_38680664
- 粉丝: 2
- 资源: 941
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论10