![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=1739453036-Js1McZrDq4gzlrpxR0YiJrIE9BkQmfP9-0-7db4fef3c06b2d637329e864661c606f)
1.4.1 数值
Python数值类型的数据包括int(整型)、float(浮点型)、bool(布尔型)、complex(复数)。数值类型只管理单个元素,用法与在其他编程语言中的类似。Python变量不需要事先声明,在它赋值时就已被创建,使用del语句可将其删除。
例程中使用列表解析方式为变量赋值,即根据已有列表高效创建新列表。
![](https://epubservercos.yuewen.com/57F11A/16699150105739906/epubprivate/OEBPS/Images/38425_40_2.jpg?sign=1739453036-BhAxHbRpalO2jLlnsGGBFsOxG6UawcL9-0-0629bcf6e7f27dea78bfe4ca522ed278)
1.4.2 字符串
字符串类型用于Python字符串的处理,它是一组字符序列,其中的数据有序但不可修改(从例程中可以看到修改后返回了新字符串,原字符串不变),字符格式默认为utf8。Python字符串常和正则表达式re库共同使用。
下面以示例方式介绍字符串及其主要函数的使用方法。
![](https://epubservercos.yuewen.com/57F11A/16699150105739906/epubprivate/OEBPS/Images/38425_40_3.jpg?sign=1739453036-Q7AjlkztoccrP469Hy9E9bQgaunH1gGh-0-07779f33a58f1f03e46eb626c2b4c9a4)
1.4.3 列表
列表是Python最常用的数据类型,是一组元素序列,支持异构(即其中各个数据项类型可以不同),其中的数据项可以是任何类型,如元组、字典,列表等。列表使用方括号定义,元素之间用逗号分隔。列表中的内容是有序的,可修改,支持通过索引值访问和双向索引,即正数为从左向右索引,负数为从右向左索引(-1为最后一个元素)。
下例从增、删、查、改几个方面介绍列表的基本操作。
![](https://epubservercos.yuewen.com/57F11A/16699150105739906/epubprivate/OEBPS/Images/38425_41_2.jpg?sign=1739453036-RVkQrMO7dijelX7kLblLoyBUvstHBi5W-0-8b65cb342ab3bada8a2397146963f7d5)
列表推导式“list comprehension”用于快速生成列表,是用可迭代对象生成多元素列表的表达式,其语法如下:
[表达式for变量in可迭代对象]或[表达式for变量in可迭代对象if真值表达式]
例如,生成20以内由奇数组成的数组,用列表推导式一行代码即可实现:
![](https://epubservercos.yuewen.com/57F11A/16699150105739906/epubprivate/OEBPS/Images/38425_41_3.jpg?sign=1739453036-d9EAaJY1w0F7rKBIsnmgxOolblD0PYEP-0-621c710a9902b02e6a515f62b3afb0a8)
其含义是用for迭代访问由range函数创建的含有数值0—19的列表,用其中不能被2整除的数(i)生成新列表。
1.4.4 元组
元组的使用方法类似于列表,也用于表示有序数据的集合,但与列表不同的是它不支持修改。它的操作速度比列表快,是轻量级的数据表示,常用于定义常量和作为字典的键值。元组使用圆括号定义,元素之间用逗号分隔。
由于元组不支持增、删、改等操作,因此下例简要介绍其建立和查询的基本方法。
![](https://epubservercos.yuewen.com/57F11A/16699150105739906/epubprivate/OEBPS/Images/38425_42_1.jpg?sign=1739453036-yWWy8MSv3gCzYz35n7JRYUjlRyg2RSYD-0-57292365381c795a577bf2a968d12591)
1.4.5 集合
集合用于表示一组不重复的元素集合,支持异构。集合使用大括号定义,元素之间用逗号分隔。集合中的元素是无序的,可修改。因为集合中的元素无序,所以其不支持通过索引值访问。
下例从增、删、查、改几方面介绍集合的基本操作。
![](https://epubservercos.yuewen.com/57F11A/16699150105739906/epubprivate/OEBPS/Images/38425_42_2.jpg?sign=1739453036-cJ8KoMdJBIYb9tTkXsoTnJWnBib3rkL5-0-813efe49c514cd1a0d5348468de4ca7c)
除了增、删、查、改,集合还支持相关的运算,如差集(-)、并集(|)、交集(&)、子集(issubset)等操作。
![](https://epubservercos.yuewen.com/57F11A/16699150105739906/epubprivate/OEBPS/Images/38425_43_1.jpg?sign=1739453036-uxLxwHteI36X3mLAAXSH6oVb2yvY8OYC-0-9b36188ca9fb15e3343bd7ceb1cad592)
1.4.6 字典
字典是一组键值对(key/value映射关系)的集合,键值不能重复,访问速度快。字典使用大括号定义,key与value间用冒号分隔,键值对之间用逗号分隔。字典中的元素是无序的,其内容可修改,字典要求key中只能包含不可变的数据。
下例从增、删、查、改几方面介绍字典的基本操作。
![](https://epubservercos.yuewen.com/57F11A/16699150105739906/epubprivate/OEBPS/Images/38425_43_2.jpg?sign=1739453036-nv3xGQkrmjgp7wDRReTk48VG1cldQBIG-0-3c13be57a540d9cc5f05b04c9f17f760)