【知识点】第6章:组合数据类型
文章目录
- 知识点整理
- 组合数据类型概述
- 序列类型
- 元组类型
- 列表类型
- 集合类型
- 映射类型
- 在这里插入图片描述
- 练习题
- 选择题
- 判断题
知识点整理
组合数据类型概述
数字类型(整数类型、浮点数类型和复数类型)仅能表示一个数据,这种表示单一数据的类型称为基本数据类型。然而,实际计算中却存在大量同时处理多个数据的情况,这需要将多个数据有效组织起来并统一表示,这种能够表示多个数据的类型称为组合数据类型。
组合数据类型能够将多个同类型或不同类型的数据组织起来,通过单一的表示使数据操作更有序、更容易。根据数据之间的关系,组合数据类型可以分为3类:序列类型、集合类型和映射类型。
- 序列类型是一个元素向量,元素之间存在先后关系,通过序号访问,元素之间不排他。
- 集合类型是一个元素集合,元素之间无序,相同元素在集合中唯一存在。
- 映射类型是“键-值”数据项的组合,每个元素是一个键值对,表示为(key,value)。
序列类型
序列类型的通用操作符和函数:
元组类型
元组是包含0个或多个数据项的不可变序列类型。元组(tuple)是序列类型中比较特殊的类型,因为它一旦创建就不能被修改。
元组使用圆括号(())表示。
元组除了用于表达固定数据项外,还常用于如下3种情况:函数多返回值、多变量同步赋值、循环遍历。
列表类型
列表是包含0个或多个对象引用的有序序列,没有长度限制,可自由增删元素,使用灵活。
列表用中括号([])表示,也可以通过 list() 函数将元组或字符串转换成列表。直接使用list()函数会返回一个空列表。
列表类型的操作符:
与元组一样,列表可以通过 for-in 语句对其元素进行遍历,基本语法结构如下:
集合类型
集合类型与数学中集合的概念一致,即包含0个或多个数据项的无序组合。集合中的元素不可重复,元素类型只能是固定数据类型,例如整数、浮点数、字符串、元组等,列表、字典和集合类型本身都是可变数据类型,不能作为集合的元素出现。
由于集合是无序组合,它没有索引和位置的概念,不能分片,集合中元素可以动态增加或删除。集合用大括号({})表示,可以用赋值语句生成一个集合。
set(x)
函数可以用生成集合,输入的参数可以是任何组合数据类型,返回结果是一个无重复且排序任意的集合。
集合类型主要用于3个场景:成员关系测试、元素去重和删除数据项。
映射类型
字典是包含0个或多个键值对的集合,没有长度限制,可以根据键索引值的内容。
通过任意键信息查找一组数据中值信息的过程叫映射,Python 语言中通过字典实现映射。Python 语言中的字典可以通过大括号({})建立,建立模式如下:
需要注意的是,尽管集合类型也用大括号表示,直接使用大括号({})生成一个空的字典,而不是集合。生成空集合需要使用函数 set()。
其中,键和值通过冒号连接,不同键值对通过逗号隔开。从Python设计角度考虑,由于大括号{}可以表示集合,因此字典类型也具有和集合类似的性质,即键值对之间没有顺序且不能重复。
字典最主要的用法是查找与特定键相对应的值,这通过索引符号来实现。例如:
字典中对某个键值的修改可以通过中括号的访问和赋值实现。
直接使用大括号({})可以创建一个空的字典,并通过中括号([])向其增加元素,例如:
字典类型的操作:
练习题
选择题
1.以下选项中不属于组合数据类型的是
A. 变体类型
B. 字典类型
C. 映射类型
D. 序列类型
答案:A
2.关于大括号{}的描述正确的是
A. 直接使用{}生成一个列表
B. 直接使用{}生成一个元组
C. 直接使用{}生成一个集合
D. 直接使用{}生成一个字典
答案:D(默认生成空字典)
3.字典d = {‘a’: 1, ‘b’: 2},print(d[‘b’])的输出是
A. 2
B. {‘b’:2}
C. 1
D. 3
答案:A
4.以下哪种数据类型支持索引运算但不支持修改?( )
A. 列表
B. 元组
C. 集合
D. 字典
答案:B(元组不可变但可索引)
5.代码d = {‘a’: 1, ‘b’: 2}; print(d.keys())的输出是( )
A. [‘a’, ‘b’]
B. dict_keys([‘a’, ‘b’])
C. [1, 2]
D. 报错
答案:B(keys()返回视图对象)
判断题
- 元组中元素必须是相同类型。(×)(元组/列表元素可不同类型)
- 字典的键可以是列表类型。(×)(键必须为不可变类型,如字符串、元组)
- 空集合可以用{}创建。(×)({}创建空字典,空集合需用set())
- 列表和元组都是不可变数据类型。(×)(列表可变,元组不可变)
- 字典的键必须是唯一的,但值可以重复。(√)(键唯一性保证映射关系,值无限制)
- 集合{1, 2, 3}和{3, 2, 1}是相等的。(√)(集合无序,元素相同即相等)
- 字典的键可以是任意不可变类型,如元组或字符串。(√)(键必须为不可变类型)
- 字符串切片操作"Python"[1:4]的结果是"yth"。(√)(切片包含起始索引,不包含结束索引)
- 元组可以通过list()函数转换为列表后修改元素。(√)(转换后的列表可变)