购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.1 Python数据类型

在编程语言中,通常使用变量来存储数据,为了更加充分地利用计算机内存空间,需要为变量指定不同的数据类型。本节介绍Python中常见的几种数据类型,包括数值、字符串、列表、元组、集合和字典。

2.1.1 数值类型

Python中的数值类型用于存储数值,主要有整数(int)和小数(float)两种。注意,Python的数值类型的变量是不可变对象,如果要改变变量的值,相当于定义了新的对象(即重新分配了内存空间)。例如,数据分析师小王统计汇总上个月商品总的退单量是29件,输入代码如下:

     order_return = 29

但是,小王检查代码时发现自己设置订单日期时没有设置结束日期,导致退单量偏大,实际只有21件,重新输入的代码如下:

     order_return = 21

运行上述代码后,现在变量order_return的数值就是商品的退单量21,而不再是前面输入的29,示例代码和输出如下:

     order_return
21

Python还提供了丰富的函数,其中数学函数、随机数函数、三角函数等返回的值都是数值类型。表2-1列举了一些常用的数学函数。

表2-1 常用的数学函数

2.1.2 字符串类型

字符串是Python中常用的数据类型。我们可以使用英文的单引号('')或双引号("")来创建字符串,字符串可以是英文、中文或中英文的混合。例如,输入以下代码:

     str1 = "Hello Python!"
     str2 = "你好Python!"

运行str1和str2,输出如下:

     str1
'Hello Python!' str2
'你好Python!'

在Python中,可以通过“+”实现字符串与其他字符串的串接,例如输入以下代码:

     str3 = str1 + " My name is Wren!"

输入str3变量,输出如下:

     str3
'Hello Python! My name is Wren!'

在字符串中,我们可以通过索引获取字符串中的字符,遵循“左闭右开”的原则,注意索引是从0开始的。例如,截取str1的前5个字符,示例代码如下:

     str1[:5]
     #或者str1[0:5]

运行上述代码,输出str1中的前5个字符“Hello”,索引分别对应0、1、2、3、4。原字符串中每个字符所对应的索引号如表2-2所示。

表2-2 字符串的索引

此外,还可以使用反向索引实现上述同样的需求,但是索引位置有变化,分别对应-13、-12、-11、-10、-9,示例代码和输出如下:

     str1[-13:-8]
'Hello'

同理,我们也可以截取原字符串中的“Python”子字符串,索引的位置是6~12,包含6,但不包含12,截取字符串的示例代码和输出如下:

     str1[6:12]
'Python'

Python提供了方便灵活的字符串运算,表2-3列出了用于字符串运算的运算符。

表2-3 字符串运算符

下面以成员运算符为例介绍字符串运算符。例如,我们要判断Python是否在字符串变量str1中,示例代码和输出如下:

     'Python' in str1
True

这里显示的是True,如果不存在,结果就为False。

2.1.3 列表类型

列表是常用的Python数据类型,使用方括号创建,数据项用逗号分隔。注意列表的数据项不需要具有相同的类型。例如,创建3个列表,示例代码如下:

     list1 = ['region', 2019, 2020]
     list2 = [289, 258, 191, 153]
     list3 = ["south", "north", "east", "west"]

运行上述创建列表的代码,输出如下:

列表的索引与字符串的索引一样,也是从0开始的,此外,还可以进行截取、组合等操作。例如,我们截取list3中的索引1~3,当不包含索引为3的字符串时,示例代码和输出如下:

     list3[1:3]
['north', 'east']

可以对列表的数据项进行修改或更新。例如,修改列表list1中索引为1的元素的数值2019,将其修改为文本“2019年”,示例代码和输出如下:

可以使用del语句来删除列表中的元素,示例代码和输出如下:

     del list1[1]
     list1
['region', 2020]

也可以调用append()方法在尾部添加列表项,示例代码和输出如下:

     list1.append(2021)
     list1
['region', 2020, 2021]

此外,还可以调用insert()方法在中间添加列表项,示例代码和输出如下:

     list1.insert(1,2019)
     list1
['region', 2019, 2020, 2021]

2.1.4 元组类型

Python的元组与列表类似,不同之处在于元组的元素不能修改。注意元组使用小括号,而列表使用方括号。元组的创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。例如,创建3个企业商品有效订单的元组,示例代码如下:

     tup1 = ('region', 2019, 2020)
     tup2 = (289, 258, 191, 153)
     tup3 = ("south", "north", "east", "west")

运行上述创建元组的代码,输出如下:

元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用,示例代码和输出如下:

元组的索引与字符串的索引一样,也是从0开始的,也可以进行截取、组合等操作。例如,我们截取tup3中的索引1~3,当不包含索引为3的元素时,示例代码和输出如下:

     tup3[1:3]
('north', 'east')

在Python中,也可以通过“+”实现对元组的串接,运算后会生成一个新的元组,示例代码和输出如下:

     tup6 = tup1 + tup4
     tup6
('region', 2019, 2020, 2021)

注意,元组中的元素是不允许修改和删除的。例如,当试图修改元组tup6中第4个元素的数值时,系统会提示如下错误信息:

2.1.5 集合类型

集合是一个无序的不重复的元素序列,可以使用大括号或者调用set()函数来创建。注意,创建一个空集合时必须调用set()函数,因为{ }是用来创建一个空字典的,并不是用来创建空集合的。创建集合的语法格式如下:

     parame = {value01, value02, ...}
     或者 set(value)

下面以客户购买商品为例介绍集合的去重功能,假设某客户在11月份购买了6次商品,分别是打印纸、椅子、书籍、配件、文件夹、配件,这里有重复的商品,我们可以借助集合删除重复值,示例代码如下:

     buy_oct = {'打印纸','椅子','书籍','配件','文件夹','配件'}

运行上述代码,输出如下:

     buy_oct
{'书籍', '文件夹', '椅子', '打印纸', '配件'}

可以看出已经删除了重复值,只保留了5种不同类型的商品名称。

同理,该客户在12月份购买了4次商品,分别是装订机、椅子、书籍、配件,示例代码和输出如下:

     buy_nov = {'装订机','椅子','书籍','配件'}
     buy_nov
{'书籍', '椅子', '装订机', '配件'}

可以快速判断某个元素是否在某集合中,例如判断该客户11月份是否购买了“配件”,示例代码和输出如下:

     '配件' in buy_oct
True

Python中的集合与数学上的集合概念基本类似,也有交集、并集、差集和补集,集合之间关系的维恩图如图2-1所示。

图2-1 集合间的关系

集合的交集,例如,统计该客户11月份和12月份都购买的商品,示例代码和输出如下:

     buy_oct & buy_nov
{'书籍', '椅子', '配件'}

集合的并集,例如,统计该客户11月份和12月份购买的商品,示例代码和输出如下:

     buy_oct | buy_nov
{'书籍', '文件夹', '椅子', '打印纸', '装订机', '配件'}

集合的差集,例如,统计该客户在11月份和12月份不同时购买的商品,示例代码和输出如下:

     buy_oct ^ buy_nov
{'文件夹', '打印纸', '装订机'}

集合的补集,例如,统计该客户11月份购买,而12月份没有购买的商品,示例代码和输出如下:

     buy_oct - buy_nov
{'文件夹', '打印纸'}

2.1.6 字典类型

字典是另一种可变容器模型,可存储任意类型的对象。字典的每个“键-值对”(Key-Value Pair)用冒号隔开,每个“键-值对”之间用逗号分隔开,整个字典包括在花括号中,语法格式如下:

     dict = {key1:value1, key2:value2}

注意,“键-值对”中的键必须是唯一的,但是值可以不唯一,且数值可以取任何数据类型,但键必须是不可变的,如字符串或数字,示例代码如下:

     dict1 = {'order': 291}
     dict2 = {'order': 291, 2020:3}
     dict3 = {'south': 289, 'north': 258, 'east': 191, 'west': 153}

运行上述代码,新建的字典如下:

在Python中,如果要访问字典中的值,需要把相应的键放入方括号中,示例代码和输出如下:

     dict3['north']
258

在Python中,如果字典中没有该键,就会报错,示例代码及其输出的错误信息如下:

在Python中,向字典添加新内容的方法是增加新的“键-值对”、修改已有“键-值对”。若要向字典dict2中添加键sales,示例代码和输出如下:

在Python中,能够删除字典中的单一元素,也能清空和删除字典。若要删除字典dict2中的键2020,然后清空字典,最后删除字典,示例代码和输出如下: smajWBS4gtrzW7K6F3p+F7wU6M00ckISX5Ioe4u8SQDBQ1XDfVQJkHphOBUzEeWh

点击中间区域
呼出菜单
上一章
目录
下一章
×