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