![4d85beb58926c4a318aacb374cb77035.png](https://img-blog.csdnimg.cn/img_convert/4d85beb58926c4a318aacb374cb77035.png)
01、数据结构是相互之间存在一种或多种特定关系的数据元素的集合
![dcaa1c89790558bdddbd91b025988e4c.png](https://img-blog.csdnimg.cn/img_convert/dcaa1c89790558bdddbd91b025988e4c.png)
今天要讲python的四个内置数据结构:
![e0030ff137bf1f2cd1729365813cd3d3.png](https://img-blog.csdnimg.cn/img_convert/e0030ff137bf1f2cd1729365813cd3d3.png)
分别是列表、元组、集合和字典,每种结构数据都有自己的特点,应用于不同情况
1、(list)列表中的元素是有序的,元素内容可以修改。列表就像银行办业务时,排队取号一样,每个人有一个序号,通过叫号,可以找到这个人。
2、(tuple)元组中的元素也是有序的,但元素内容不可修改,元组和列表不同的地方时,元组中的元素不可以更改。
3、(set)集合中的元素是无序且唯一的,这个集合和我们高中数学说的集合有相似之处,集合中的元素无序且唯一
4、(dict)字典中的元素无序,内容可以修改,字典和我们常见的字典概念相似,通过关键字产找值,关键字和值之间产生一种映射关系,通过关键字可以找到对应的值,以key-value键值对存储.
02、如何新建四种数据结构
1、列表可以使用 []创建
比如 a = [1,2,3,4,5]
![736dee8f8fdbf99e6772c716668e5848.png](https://img-blog.csdnimg.cn/img_convert/736dee8f8fdbf99e6772c716668e5848.png)
这个列表中存放了五个数字
也可以存放字符串
![d2fda0b47a73dd60afe572db085c799a.png](https://img-blog.csdnimg.cn/img_convert/d2fda0b47a73dd60afe572db085c799a.png)
如果我们要使用里面的元素,如何获取呢?
通过[]符号和索引来获取,比如 a[0] 表示列表中的第一个元素 1,a[6]表示列表中第7个元素orange,注意索引是从0开始算的
list还具有很多的用法,比如增加、删除、修改
list是内置数据结构,我们可以通过dir(list) 查看所有列表所有的功能
![e00e3c3e963edfcc9ed32091641d28e4.png](https://img-blog.csdnimg.cn/img_convert/e00e3c3e963edfcc9ed32091641d28e4.png)
注意这些没有下划线的技能(我习惯将函数称为技能,这样更有助于理解),比如有copy复制,instert插入,pop弹出,remove删除sort排序等等
我们可以使用help(lsit)查看list 完整描述
![6bb015f2129839b8548c676d6cd7c3de.png](https://img-blog.csdnimg.cn/img_convert/6bb015f2129839b8548c676d6cd7c3de.png)
如果想看某一个技能具体的用法和含义可以,使用 help(list.insert)
![2992a6eec90b6f36415cdca340d50794.png](https://img-blog.csdnimg.cn/img_convert/2992a6eec90b6f36415cdca340d50794.png)
insert表示在指定索引前插入对象,这里注意python里面所有的类型本质都是对象,这个我们后面讲类的时候再讲。
insert的具体用法,也给了参考,里卖弄有几个掺入,第一个self不用管,主要是index是索引,object是插入的值
比如 a.insert(2,'Hello')
![c234dc7f20bc121c5f1e347e38eee512.png](https://img-blog.csdnimg.cn/img_convert/c234dc7f20bc121c5f1e347e38eee512.png)
就在索引为2的地方插入了 ‘Hello'
至于其他方法,我们用到的时候再去查
2、tuple元组,使用()创建
![46c348d0609c371c60115839ede0c4f2.png](https://img-blog.csdnimg.cn/img_convert/46c348d0609c371c60115839ede0c4f2.png)
要注意元组和列表的区别是元素内容不能修改
我们使用 dir(tuple)来看看元组具有的技能
![7927df0b1ecfb8b6634862dd7dff69ea.png](https://img-blog.csdnimg.cn/img_convert/7927df0b1ecfb8b6634862dd7dff69ea.png)
我们先不关注带双下划线的,我们看到只有count和index两个函数,肯定没有过删除和修改的技能了
3、set集合,使用{}创建
![35b173b140ad1342b0420d30660d112d.png](https://img-blog.csdnimg.cn/img_convert/35b173b140ad1342b0420d30660d112d.png)
集合中的元素是无序且唯一的,举个例子
![5aeb06259aaf9d6449a806cf5b3b85a0.png](https://img-blog.csdnimg.cn/img_convert/5aeb06259aaf9d6449a806cf5b3b85a0.png)
你会发现,输出的集合,将重复值自动过滤掉了,并且输出的顺序和我们创建时的顺序并不相同
集合具有的技能同样可以使用help和dir查看
相信你已经会查看了
![f847437a990d1e358ea9a35d3883fc85.png](https://img-blog.csdnimg.cn/img_convert/f847437a990d1e358ea9a35d3883fc85.png)
从这些名字上你会看到,可以增加、删除和修改,我们还知道集合可以并集、交集
比如我们查看union的使用
![be04872ae77e37723b7a0b47bbe40c69.png](https://img-blog.csdnimg.cn/img_convert/be04872ae77e37723b7a0b47bbe40c69.png)
然后使用union来实验以下
![0a11a84e9afcce129e5872f0bf73888a.png](https://img-blog.csdnimg.cn/img_convert/0a11a84e9afcce129e5872f0bf73888a.png)
4、dict字典。也是使用{}大括号,不同的是字典的每个值是键值对,是成对出现的使用 冒号:隔开
![7f782f78727064428ce3d93d417e0829.png](https://img-blog.csdnimg.cn/img_convert/7f782f78727064428ce3d93d417e0829.png)
每个键值对也是使用逗号隔开,键值对之间使用冒号
字典就像我们常使用的字典一样,我们通过键来找到对应的值
我们来比较一下字典和列表
列表是使用索引来使用列表中的元素的,而字典是无序的,不需要知道索引,使用关键词就可以查找到对应的值
![7d86b343bd5ef61836a92fb73f77c66f.png](https://img-blog.csdnimg.cn/img_convert/7d86b343bd5ef61836a92fb73f77c66f.png)
我们来看看dict字典具有哪些技能
![0ce753f97805dc45950ea3ab1db8c370.png](https://img-blog.csdnimg.cn/img_convert/0ce753f97805dc45950ea3ab1db8c370.png)
四种结构化数据我们简单说完了,现在你知道了四种的区别,但是可能不知道什么时候该用哪一种数据结构,不要着急,等到具体的案例的时候,你自然会知道使用哪一种
03 回顾总结
1、请说下四种数据结构的特点?
2、如何查看每种数据结构具备的方法(技能)?