当前位置: 首页 > news >正文

【知识点】第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()返回视图对象)

判断题​​

  1. ​​元组中元素必须是相同类型。​​(×)​​(元组/列表元素可不同类型)
  2. 字典的键可以是列表类型。​​(×)​​(键必须为不可变类型,如字符串、元组)
  3. 空集合可以用{}创建。​​(×)​​({}创建空字典,空集合需用set())
  4. ​列表和元组都是不可变数据类型。​​(×)​(列表可变,元组不可变)
  5. 字典的键必须是唯一的,但值可以重复。​​(√)​​(键唯一性保证映射关系,值无限制)
  6. 集合{1, 2, 3}和{3, 2, 1}是相等的。​​(√)​​(集合无序,元素相同即相等)
  7. 字典的键可以是任意不可变类型,如元组或字符串。​​(√)​​(键必须为不可变类型)
  8. 字符串切片操作"Python"[1:4]的结果是"yth"。​​(√)​​(切片包含起始索引,不包含结束索引)
  9. 元组可以通过list()函数转换为列表后修改元素。​​(√)​​(转换后的列表可变)

相关文章:

  • 时序替换实时?是否必要
  • C++算法训练营 Day7 哈希表及双指针
  • 《汇编语言》第14章 端口——实验14 访问CMOS RAM
  • OpenCV C++ 心形雨动画
  • 灰狼优化算法MATLAB实现,包含种群初始化和29种基准函数测试
  • 从零开始:用Tkinter打造你的第一个Python桌面应用
  • JVMTI 在安卓逆向工程中的应用
  • 解决 WebAssembly 错误:Incorrect response MIME type (Expected ‘application/wasm‘)
  • 【已解决】电脑端 划词时出现腾讯元宝弹窗问题
  • SQL 中 NOT IN 的陷阱?
  • 固定ip和非固定ip的区别是什么?如何固定ip地址
  • AI助力Java开发:减少70%重复编码,实战效能提升解析
  • Python多线程与多进程
  • 那些Java 线程中断的实现方式
  • Git的使用技巧
  • qt的智能指针
  • MuLogin浏览器如何使用Loongproxy?
  • 深入解析 Java ClassLoader:揭开 JVM 动态加载的神秘面纱
  • 海康网络摄像头实时取帧转Opencv数组格式(h,w,3),已实现python、C#
  • intense-rp-api开源程序是一个具有直观可视化界面的 API,可以将 DeepSeek 非正式地集成到 SillyTavern 中
  • 百度购物平台/优化网站排名如何
  • 天天炫拍免费做相册管方网站下载/软文外链购买平台
  • 做网站挂靠服务器/免费推广自己的网站
  • 网站建设排行榜/媒体推广
  • app跟网站的区别是什么/友情链接平台网站
  • 上海市建设交通工会网站/营销案例