6.Python容器类型的数据

若我们想将多个数据打包并且统一管理,应该怎么办?

Python内置的数据类型如序列(列表、元组等)、集合和字典等可 以容纳多项数据,我们称它们为容器类型的数据

1 序列

序列(sequence)是一种可迭代的、元素有序的容器类型的数据。

序列包括列表(list)、字符串(str)、元组(tuple)和字节序列 (bytes)等。

1.1 序列的索引操作

序列示例:Hello字符串。

序列中的元素都是有序的,每一个元素都带有序号,这个序号叫作 索引。索引有正值索引和负值索引之分。

我们是通过下标运算符访问序列中的元素的,下标运算符是跟在容 器数据后的一对中括号([]),中括号带有参数,对于序列类型的数据 ,这个参数就是元素的索引序号。

我们在Python Shell中运行代码,看看运行结果怎样。

1.2 加和乘操作

加(+)和乘(*)运算符也可以用于序列中的元素操作。加(+) 运算符可以将两个序列连接起来,乘(*)运算符可以将两个序列重复 多次。

1.3 切片操作

序列的切片(Slicing)就是从序列中切分出小的子序列。

切片运算符的语法形式为[start:end:step]。其中,start是开始索引 ,end是结束索引,step是步长(切片时获取的元素的间隔,可以为正整 数,也可以为负整数)。

注意:切下的小切片包括start位置的元素,但不包括end位置的元素 ,start和end都可以省略。

下面对字符串变量a进行切片操作[1:3],开始索引为1,结束索引 为3,省略步长(默认值为1)。

我们在Python Shell中运行省略步长的示例代码,看看运行结果怎样:

下面对字符串变量a进行切片操作[0:3:2],开始索引为0,结束索 引为3,步长为2。

我们在Python Shell中运行没有省略步长的示例代码,看看运行结果 怎样。

1.4 成员测试

成员测试运算符有两个:in和not in,in用于测试是否包含某一个元 素,not in用于测试是否不包含某一个元素。

我们在Python Shell中运行代码,看看运行结果怎样。

2 列表

列表(list)是一种可变序列类型,我们可以追加、插入、删除和 替换列表中的元素。

2.1 创建列表

创建列表有两种方法。

1 list(iterable)函数:参数iterable是可迭代对象(字符串、列表、 元组、集合和字典等)。

2 [元素1,元素2,元素3,⋯]:指定具体的列表元素,元素之间以 逗号分隔,列表元素需要使用中括号括起来。

2.2 追加元素

列表是可变的序列对象,列表可以追加元素。

1 在列表中追加单个元素时,可以使用列表的append(x)方法。

2 在列表中追加多个元素时,可以使用加(+)运算符或列表的exte nd(t)方法。

问:本节的append(x)被称为方法,list(iterable)被称为函数,方法和函数有什么区别?
答:   在Python中方法和函数是有区别的。方法隶属于类,通过类或对象调用方法,函数不隶属于任何类,直接调用即可。

我们在Python Shell中运行代码,看看运行结果怎样。

2.3 插入元素

想向列表中插入元素时,可以使用列表的list.insert(i,x)方法, 其中,i指定索引位置,x是要插入的元素。

我们在Python Shell中运行代码,看看运行结果怎样。

2.4 替换元素

想替换列表中的元素时,将列表下标索引元素放在赋值符号(=) 的左边,进行赋值即可。

我们在Python Shell中运行代码,看看运行结果怎样。

2.5 删除元素

想在列表中删除元素时,可使用列表的list.remove(x)方法,如果 找到匹配的元素x,则删除该元素,如果找到多个匹配的元素,则只删 除第一个匹配的元素。

3 元组

元组(tuple)是一种不可变序列类型。

3.1 创建元组

创建元组时有两种方法。

1 tuple(iterable)函数:参数iterable是可迭代对象(字符串、列表 、元组、集合和字典等)。

2 (元素1,元素2,元素3,⋯):指定具体的元组元素,元素之间 以逗号分隔。对于元组元素,可以使用小括号括起来,也可以省略小括 号

我们在Python Shell中运行代码,看看运行结果怎样。

3.2 元组拆包

创建元组,并将多个数据放到元组中,这个过程被称为元组打包。

与元组打包相反的操作是拆包,就是将元组中的元素取出,分别赋 值给不同的变量。

我们在Python Shell中运行代码,看看运行结果怎样:

将元组(102,'张三')拆包到变量s_id和s_name

4 集合

集合(set)是一种可迭代的、无序的、不能包含重复元素的容器类 型的数据。

4.1 创建集合

序列中的元素是有序的;集合中的元素是无序的,但元素不能重复。
我们可以通过以下两种方式创建集合。

1 set(iterable)函数:参数iterable是可迭代对象(字符串、列表、 元组、集合和字典等)。

2 {元素1,元素2,元素3,⋯}:指定具体的集合元素,元素之间以 逗号分隔。对于集合元素,需要使用大括号括起来。

4.2 修改集合

修改集合类似于修改列表,可以向其中插入和删除元素。修改可变 集合有如右所示的常用方法。

add(elem):添加元素,如果元素已经存在,则不能添加,不会 抛出错误。

remove(elem):删除元素,如果元素不存在,则抛出错误。

clear():清除集合。

我们在Python Shell中运行代码,看看运行结果怎样。

5 字典

字典(dict)是可迭代的、通过键(key)来访问元素的可变的容器 类型的数据。

字典由两部分视图构成:键视图和值视图。键视图不能包含重复的 元素,值视图能。在键视图中,键和值是成对出现的。

5.1 创建字典

我们可以通过以下两种方法创建字典。

1 dict()函数。

2 {key1:value1,key2:value2,...,key_n:value_n}:指定具体 的字典键值对,键值对之间以逗号分隔,最后用大括号括起来。

我们在Python Shell中运行代码,看看运行结果怎样:

5.2 修改字典

字典可以被修改,但都是针对键和值同时操作的,对字典的修改包 括添加、替换和删除。

我们在Python Shell中运行代码,看看运行结果怎样。

5.3 访问字典视图

我们可以通过字典中的三种方法访问字典视图。

我们在Python Shell中运行代码,看看运行结果怎样。

items():返回字典的所有键值对视图。keys():返回字典键视 图。

values():返回字典值视图。

第2行:返回字典的所有键值对视图dict_items

第4行:dict_items可以使用list()函数返回键值对列表

第6行:返回字典键视图dict_keys

第8行:dict_keys可以使用list()函数返回键列表

第10行:返回字典值视图dict_values

第12行:dict_values可以使用list()函数返回值列表

6 动动手——遍历字典

遍历就是从容器中取出每一个元素的过程,我们在进行序列和集合遍历时使用for循环就可以了。但集合有两个视图,应该加何遍历呢?

字典有两个视图,在遍历时,可以只遍历值视图,也可以只遍历键视图,还可以同时遍历,具体遍历哪个视图就要看你的业务需求了。这些遍历都是通过for循环实现的。
 

 7 练一练

判断对错(请在括号内打√或×,√表示正确,×表示错误)。

1)列表的元素是不能重复的。()

2)集合的元素是不能重复的。()

3)字典由键和值两个视图构成,键视图中的元素不能重复,值视 图中的元素可以重复。()

4)在序列的切片运算符[start:end]中,start是开始索引,end是结 束索引。切下来的子列表中包括start和end索引位置的元素。()

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值