Part
4
Python结构数据类型
Python拥有强大的官方或第三方库,你只需要调用,不需要自己开发。
4.1
列表List
4.1.1 列表的概念
列表是最常见的一种数据形式,它可以把大量数据放在一起,对其进行集中处理,不仅可以方便地进行数据处理,还可以减少声明许多变量。列表是以方括号“[ ]”包围的数据集合,不同成员之间以“,”分隔,列表种可以包含任何数据类型,也可以包含另一个列表,列表可以通过序号访问其中的成员。在交互式环境下列表的创建和基本使用演示如下:
4.1.2 常见列表的操作函数
Python提供了对列表操作的多种操作函数,常用的操作函数如下表:
列表的操作函数
列表操作
描述
list.append(x)
列表尾部追加成员x
list.count(x)
返回列表中x出现次数
list.extend(L)
向列表中追加另一个列表L
list.index(x)
返回参数x在里列表中的序号
list.insert(i,o)
向列表中制定位置(i)插入数据o
list.pop()
删除列表尾部成员并返回
list.remove(x)
删除列表中的指定成员x(有多个则只删除第一个,无则报错)
list.reverse()
将列表中成员的顺序颠倒
list.sort()
将列表中成员排序(要求其成员可排序,否则报错)
列元素的序号从0开始计数,即第一个元素的序号为0。以下是在交互式环境中的示例代码:
注意:在列表中操作并不返回列表,而只是修改列表
4.2
元组tuple
4.2.1元组的概念和操作
元组可以看成一种特殊的列表,与列表不同的是元组一旦建立就不能改变。既不能改变其中的数据项,也不能添加和删除元素。因此想要一组数据不发生改变就把它们放到一个元组中即可,并且任何企图修改元组的操作都会发生错误。元组的基本形式是以圆括号"()"括起来的数据元素,它可以通过序号来引用其中的元素。以下是在交互式环境中演示元组的使用代码。
建立只有一个元素的元组,元素后面要有一个“,”
4.3
字典Dict
4.3.1 字典的概念
字典是Python中比较特别的一类数据类型,字典中每个成员都是以“键”:“值”对的形式存在的。字典以大括号‘{}’包围的以“建”:“值”对方式声明和存在的数据集合。与列表的最大不同在于字典是无序的,其成员位置只是象征性的,在字典中通过建来访问成员,而不能通过其位置来访问该成员。以下为交互式环境中演示Python中字典的创建与成员引用的示例代码:
4.3.2 常见字典操作函数
字典的操作函数
dic.clear()
清空字典
dic.copy()
复制字典
dic.get(k,[default])
获得键k对应的值,不存在则返回default
dic.items()
获得由键和值组成的迭代器
dic.keys()
获得键的迭代器
dic.pop(k)
删除(k,v)成员对
dic.update(adict)
从另一字典更新成员(不存在就创建)
dic.values()
获得值的迭代器
dic.fromkeys(iter,value)
以列表或元组中给定的键建立字典,默认值为value
dic.popitem()
从字典中删除任一k:v项并返回它
dic.setdefault(k,default)
若字典中存在key值为k的,则返回其对应的值;否则,在字典中建立一个k:default字典成员
以上是字典操作的示例代码。
4.4
经典程序举例
例子4.4.1是一个利用列表对车牌进行排序的实例
运行例4.4.1,输出以下内容:
排序前: [‘honda’, ‘yamaha’, ‘suzuki’, ‘宗申’, ‘钱江’] 排序后: [‘honda’, ‘suzuki’, ‘yamaha’, ‘宗申’, ‘钱江’] 逆向排序前: [‘honda’, ‘suzuki’, ‘yamaha’, ‘宗申’, ‘钱江’] 逆向排序后: [‘钱江’, ‘宗申’, ‘yamaha’, ‘suzuki’, ‘honda’] 调用sorted()函数之前,列表内容: [‘宗申’, ‘honda’, ‘yamaha’, ‘suzuki’, ‘钱江’] 调用sorted()函数之后,列表内容: [‘宗申’, ‘honda’, ‘yamaha’, ‘suzuki’, ‘钱江’] 调用sorted()函数之后,排序结果: [‘honda’, ‘suzuki’, ‘yamaha’, ‘宗申’, ‘钱江’] 调用sorted()函数,进行逆向排序: [‘钱江’, ‘宗申’, ‘yamaha’, ‘suzuki’, ‘honda’]
例子4.4.2通过的字典类型将一篇存放在文本文件中英文文章中的所有单词出现的次数进行统计并绘制柱状图(程序只支持英文,因为汉语会牵扯到语义等问题,还有个问题是统计出来的大多是冠词,或者是情态动词,要想真正用这种思想来获取文章大意还需进一步优化,但是这仍然是获取文章大意的一种不错的思路)
设C盘上存放一篇英文文章beautylife.txt,运行上述代码统计词频,结果如下:
领取专属 10元无门槛券
私享最新 技术干货