![Python大数据与机器学习实战](https://wfqqreader-1252317822.image.myqcloud.com/cover/134/30638134/b_30638134.jpg)
1.4 Python数据类型
Python支持六种基本的数据类型:数值(Number)、字符串(String)、列表(List)、元组(Tuple)、集合(Set)、字典(Dict),其中字符串和数值类型与在Java和C语言中的用法类似,下面主要介绍Python的数据类型及其用法,如表1.1所示。
表1.1 Python的数据类型
![](https://epubservercos.yuewen.com/57F11A/16699150105739906/epubprivate/OEBPS/Images/38425_40_1.jpg?sign=1739085361-xp3aMoPLZC2k60P82uUPR3oTuzhWOfxi-0-844d2f9e3f4bbb599d60c22122c14d18)
1.4.1 数值
Python数值类型的数据包括int(整型)、float(浮点型)、bool(布尔型)、complex(复数)。数值类型只管理单个元素,用法与在其他编程语言中的类似。Python变量不需要事先声明,在它赋值时就已被创建,使用del语句可将其删除。
例程中使用列表解析方式为变量赋值,即根据已有列表高效创建新列表。
![](https://epubservercos.yuewen.com/57F11A/16699150105739906/epubprivate/OEBPS/Images/38425_40_2.jpg?sign=1739085361-6oQBsTfWOI7l2S1DbefgpQAthSrCLb7E-0-cf8e7438c720b4e436afd84c1a692c20)
1.4.2 字符串
字符串类型用于Python字符串的处理,它是一组字符序列,其中的数据有序但不可修改(从例程中可以看到修改后返回了新字符串,原字符串不变),字符格式默认为utf8。Python字符串常和正则表达式re库共同使用。
下面以示例方式介绍字符串及其主要函数的使用方法。
![](https://epubservercos.yuewen.com/57F11A/16699150105739906/epubprivate/OEBPS/Images/38425_40_3.jpg?sign=1739085361-v0QRXRBF4XIxximz77eyOQaGlpKmyAQe-0-244857f589bd4ae694292b44db2f7e90)
1.4.3 列表
列表是Python最常用的数据类型,是一组元素序列,支持异构(即其中各个数据项类型可以不同),其中的数据项可以是任何类型,如元组、字典,列表等。列表使用方括号定义,元素之间用逗号分隔。列表中的内容是有序的,可修改,支持通过索引值访问和双向索引,即正数为从左向右索引,负数为从右向左索引(-1为最后一个元素)。
下例从增、删、查、改几个方面介绍列表的基本操作。
![](https://epubservercos.yuewen.com/57F11A/16699150105739906/epubprivate/OEBPS/Images/38425_41_2.jpg?sign=1739085361-C4CkSlmgd7wpJlzEKe9tE33yaUQwrFj2-0-0d95afbb138fac080d6e1bc5fb7e5003)
列表推导式“list comprehension”用于快速生成列表,是用可迭代对象生成多元素列表的表达式,其语法如下:
[表达式for变量in可迭代对象]或[表达式for变量in可迭代对象if真值表达式]
例如,生成20以内由奇数组成的数组,用列表推导式一行代码即可实现:
![](https://epubservercos.yuewen.com/57F11A/16699150105739906/epubprivate/OEBPS/Images/38425_41_3.jpg?sign=1739085361-THxx4BpiRUOy4dHObDbHsS8khgrob2NE-0-364209cd42b4f2ecf3c07cb237a29548)
其含义是用for迭代访问由range函数创建的含有数值0—19的列表,用其中不能被2整除的数(i)生成新列表。
1.4.4 元组
元组的使用方法类似于列表,也用于表示有序数据的集合,但与列表不同的是它不支持修改。它的操作速度比列表快,是轻量级的数据表示,常用于定义常量和作为字典的键值。元组使用圆括号定义,元素之间用逗号分隔。
由于元组不支持增、删、改等操作,因此下例简要介绍其建立和查询的基本方法。
![](https://epubservercos.yuewen.com/57F11A/16699150105739906/epubprivate/OEBPS/Images/38425_42_1.jpg?sign=1739085361-qtoDwIGH3oxPi9nxl5jIBBoNaSCiDlVK-0-06f7c936e03a7cff3c527bc6a84b83b0)
1.4.5 集合
集合用于表示一组不重复的元素集合,支持异构。集合使用大括号定义,元素之间用逗号分隔。集合中的元素是无序的,可修改。因为集合中的元素无序,所以其不支持通过索引值访问。
下例从增、删、查、改几方面介绍集合的基本操作。
![](https://epubservercos.yuewen.com/57F11A/16699150105739906/epubprivate/OEBPS/Images/38425_42_2.jpg?sign=1739085361-zgrYYB2bSG0y0FeapOKdQ44l27dXUaJy-0-311b5b3fedd43efddaf907b38afe02ad)
除了增、删、查、改,集合还支持相关的运算,如差集(-)、并集(|)、交集(&)、子集(issubset)等操作。
![](https://epubservercos.yuewen.com/57F11A/16699150105739906/epubprivate/OEBPS/Images/38425_43_1.jpg?sign=1739085361-71WfY2R8QNIO9EmxBGcC4Pm4OumeBLJV-0-8443f97a4f329ea4b76e9eb2dbb267ad)
1.4.6 字典
字典是一组键值对(key/value映射关系)的集合,键值不能重复,访问速度快。字典使用大括号定义,key与value间用冒号分隔,键值对之间用逗号分隔。字典中的元素是无序的,其内容可修改,字典要求key中只能包含不可变的数据。
下例从增、删、查、改几方面介绍字典的基本操作。
![](https://epubservercos.yuewen.com/57F11A/16699150105739906/epubprivate/OEBPS/Images/38425_43_2.jpg?sign=1739085361-cH3JQrE68CjvxBIH1mZeHBMUWAYs3GXU-0-b6881eea320c6a838ab5d9611268a8f9)