我是栗子——专为小白准备《Python从入门到实战》内容。
这不是上一期刚讲完循环判断,还给大家出了很多新手的题目,边学边练习才有效果嘛。
时隔几天,大家都吼完了叭~实在没写完的慢慢复习,我更新文章也挺慢的!哈哈哈哈
今天想一想:要学数据结构啦~
一、Python有那几种数据结构?
Python 有四种数据结构,分别是:列表、字典、元组,集合。每种数据结构都有自己的特点,并且都有着独到的用处。为了避免过早地陷入细枝末节。
我们先从整体上来认识一下这四种数据结构:从最容易识别的特征上来说,列表中的元素使用方括号扩起来,字典和集合是花括号,而元组则是圆括号。其中字典中的元素是均带有‘:'的 key 与 value 的对应关系组。
1)列表(list)
1.1 什么是列表?
最显著的特征是:
- 列表中的每一个元素都是可变的;
- 列表中的元素是有序的,也就是说每一个元素都有一个位置;
- 列表可以容纳 Python 中的任何对象。
列表中的元素是可变的,这意味着我们可以在列表中添加、删除和修改元素。
输入:
1 2 |
|
第三个特征是列表可以装入 Python 中所有的对象,往下看:
1 2 3 4 5 6 7 8 9 10 |
|
1.2列表的增删改查
对于数据的操作,最常见的是增删改查这四类。从列表的插入方法开始,输入:
1 2 3 |
|
在使用insert方法的时候,必须指定在列表中要插入新的元素的位置,插入元素的实际位置是在指定位置元素之前的位置,如果指定插入的位置在列表中不存在,实际上也就是超出指定列表长度,那么这个元素一定会被放在列表的最后位置。
- 其他方法达到“插入”的效果:
1 2 |
|
- 删除列表中元素的方法是使用 remove():
1 2 3 |
|
- 替换修改其中的元素:
1 |
|
- 删除还有一种方法,那就是使用 del 关键字来声明:
1 2 |
|
2)字典(Dictionary)
2.1 什么是字典?
字典这种数据结构的特征也正如现实世界中的字典一样,使用名称-内容进行数据的构建,在 Python 中分别对应着键(key)-值(value),习惯上称之为键值对。
字典的特征总结如下:
- 字典中数据必须是以键值对的形式出现的;
- 逻辑上讲,键是不能重复的,而值可以重复;
- 字典中的键(key)是不可变的,也就是无法修改的;而值(value)是可变的,可修改的,可以是任何对象。
举个小栗子:
1 2 3 4 5 6 7 |
|
一个字典中键与值并不能脱离对方而存在,如果你写成{'BIDU':}会引发语法错误。
记住这两个特征: key 和 value 是一一对应的,key 是不可变的。
同时字典中的键值不会有重复,即便你这么做,相同的键值也只能出现一次:
1 2 |
|
2.2 字典的增删改查
首先我们按照映射关系创建一个字典:
1 |
|
与列表不同的是,字典并没有一个可以往里面添加单一元素的“方法”,但是我们可以通过这种方式进行添加:
1 2 |
|
列表中有用来添加多个元素的方法 extend() ,在字典中也有对应的添加多个元素的方法update():
1 |
|
删除字典中的元素则使用del方法:
1 |
|
需要注意的是,虽说字典是使用的花括号,在索引内容的时候仍旧使用的是和列表一样的方括号进行索引,只不过在括号中放入的一定是——字典中的键,也就是说需要通过键来索引值:
1 |
|
同时,字典是不能够切片的,也就是说下面这样的写法应用在字典上是错误的:
1 |
|
3)元组(Tuple)
元组其实可以理解成一个稳固版的列表,因为元组是不可修改的,因此在列表中的存在的方法均不可以使用在元组上,但是元组是可以被查看索引的,方式就和列表一样:
1 2 |
|
4)集合(Set)
4.1什么是集合?
每一个集合中的元素是无序的、不重复的任意对象,我们可以通过集合去判断数据的从属关系,有时还可以通过集合把数据结构中重复的元素减掉。
集合不能被切片也不能被索引,除了做集合运算之外,集合元素可以被添加还有删除:
1 2 3 |
|
5)番外——数据结构的一些技巧
5.1多重循环
举个栗子:比如,在整理表格或者文件的时候会按照字母或者日期进行排序,在 Python 中也存在类似的功能。
1 2 |
|
sorted函数按照长短、大小、英文字母的顺序给每个列表中的元素进行排序。这个函数会经常在数据的展示中使用,其中有一个非常重要的地方,sorted函数并不会改变列表本身,你可以把它理解成是先将列表进行复制,然后再进行顺序的整理。