学Python的漫画漫步进阶 -- 第六步

news2024/10/7 15:26:56

学Python的漫画漫步进阶 -- 第六步

  • 六、容器类型的数据
    • 6.1 序列
      • 6.1.1 序列的索引操作
      • 6.1.2 加和乘操作
      • 6.1.3 切片操作
      • 6.1.4 成员测试
    • 6.2 列表
      • 6.2.1 创建列表
      • 6.2.2 追加元素
      • 6.2.3 插入元素
      • 6.2.4 替换元素
      • 6.2.5 删除元素
    • 6.3 元组
      • 6.3.1 创建元组
      • 6.3.2 元组拆包
    • 6.4 集合
      • 6.4.1 创建集合
      • 6.4.2 修改集合
    • 6.5 字典
      • 6.5.1 创建字典
      • 6.5.2 修改字典
      • 6.5.3 访问字典视图
    • 6.6 动动手——遍历字典
    • 6.7 练一练
    • 6.8 容器类型的总结

六、容器类型的数据

在这里插入图片描述
若我们想将多个数据打包并且统一管理,应该怎么办?

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

在这里插入图片描述

6.1 序列

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

在这里插入图片描述
在这里插入图片描述

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

6.1.1 序列的索引操作

序列示例:Hello字符串。
在这里插入图片描述
在这里插入图片描述
序列中的元素都是有序的,每一个元素都带有序号,这个序号叫作索引。索引有正值索引和负值索引之分。
在这里插入图片描述
我们是通过下标运算符访问序列中的元素的,下标运算符是跟在容器数据后的一对中括号([]),中括号带有参数,对于序列类型的数据,这个参数就是元素的索引序号。
在这里插入图片描述

我们在Python Shell中运行代码,看看运行结果怎样:
在这里插入图片描述

6.1.2 加和乘操作

加(+)和乘()运算符也可以用于序列中的元素操作。加(+)运算符可以将两个序列连接起来,乘()运算符可以将两个序列重复多次。
在这里插入图片描述
我们在Python Shell中运行代码,看看运行结果怎样?

在这里插入图片描述

6.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中运行没有省略步长的示例代码,看看运行结果怎样:

在这里插入图片描述

在这里插入图片描述

6.1.4 成员测试

成员测试运算符有两个:in和not in,in用于测试是否包含某一个元素,not in用于测试是否不包含某一个元素。
我们在Python Shell中运行代码,看看运行结果怎样:
在这里插入图片描述

6.2 列表

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

6.2.1 创建列表

创建列表有两种方法。

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

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

在这里插入图片描述
我们在Python Shell中运行代码,看看运行结果怎样:

在这里插入图片描述

6.2.2 追加元素

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

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

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

在这里插入图片描述
在这里插入图片描述

我们在Python Shell中运行代码,看看运行结果怎样:
在这里插入图片描述

6.2.3 插入元素

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

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

在这里插入图片描述

6.2.4 替换元素

想替换列表中的元素时,将列表下标索引元素放在赋值符号(=)的左边,进行赋值即可。
我们在Python Shell中运行代码,看看运行结果怎样:

在这里插入图片描述
在这里插入图片描述

6.2.5 删除元素

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

6.3 元组

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

在这里插入图片描述

6.3.1 创建元组

创建元组时有两种方法。

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

在这里插入图片描述
2 (元素1,元素2,元素3,⋯):指定具体的元组元素,元素之间以逗号分隔。对于元组元素,可以使用小括号括起来,也可以省略小括号。
在这里插入图片描述
我们在Python Shell中运行代码,看看运行结果怎样:

在这里插入图片描述

6.3.2 元组拆包

创建元组,并将多个数据放到元组中,这个过程被称为元组打包。与元组打包相反的操作是拆包,就是将元组中的元素取出,分别赋值给不同的变量。

在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
将元组(102,‘张三’)拆包到变量s_id和s_name

在这里插入图片描述

6.4 集合

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

6.4.1 创建集合

在这里插入图片描述
在这里插入图片描述

我们可以通过以下两种方式创建集合。

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

2 {元素1,元素2,元素3,⋯}:指定具体的集合元素,元素之间以逗号分隔。对于集合元素,需要使用大括号括起来。
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

6.4.2 修改集合

修改集合类似于修改列表,可以向其中插入和删除元素。修改可变集合有如右所示的常用方法。
add(elem):添加元素,如果元素已经存在,则不能添加,不会抛出错误。
remove(elem):删除元素,如果元素不存在,则抛出错误。
clear():清除集合。
我们在Python Shell中运行代码,看看运行结果怎样:
在这里插入图片描述

6.5 字典

字典(dict)是可迭代的、通过键(key)来访问元素的可变的容器类型的数据。
字典由两部分视图构成:键视图和值视图。键视图不能包含重复的元素,值视图能。在键视图中,键和值是成对出现的。
在这里插入图片描述

6.5.1 创建字典

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

1 dict()函数。
2 {key1:value1,key2:value2,…,key_n:value_n}:指定具体的字典键值对,键值对之间以逗号分隔,最后用大括号括起来。
在这里插入图片描述
我们在Python Shell中运行代码,看看运行结果怎样:

在这里插入图片描述
在这里插入图片描述

6.5.2 修改字典

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

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

在这里插入图片描述

6.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.6 动动手——遍历字典

在这里插入图片描述
我们来动手试一试,参考代码如下:
在这里插入图片描述

在这里插入图片描述

6.7 练一练

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

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

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

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

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

6.8 容器类型的总结

Python中有几种主要的容器类型,这些类型在编程中非常有用。以下是这些容器类型的总结:

  1. 列表(List):列表是Python中最常用的容器类型之一。它们是有序的集合,可以包含任何类型的对象。列表是可变的,这意味着您可以在运行时添加、删除或更改列表中的元素。
  2. 元组(Tuple):元组和列表类似,但有一个重要的区别:元组是不可变的。也就是说,一旦创建了一个元组,就不能更改其中的元素。因此,元组通常用于存储不应该被更改的值。
  3. 集合(Set):集合是无序的、不重复的元素集合。集合是可变的,可以添加或删除元素。集合主要用于测试成员资格,消除重复元素,以及计算交集、并集和差集等。
  4. 字典(Dictionary):字典是无序的键值对集合。每个键都唯一,并且与一个值相关联。字典是可变的,可以添加、删除或更改键值对。字典主要用于存储和查找关联数据。
  5. 列表推导式(List Comprehension):列表推导式是Python中创建新列表的一种方式。它们允许您以一种简洁、易读的方式生成新的列表。
  6. 生成器(Generator):生成器是一种特殊类型的迭代器,用于在需要时才生成值,从而节省内存。生成器在需要时才生成下一个值,这使得它们非常适合于大型数据集。
  7. 集合推导式(Set Comprehension):集合推导式是Python中创建新集合的一种方式。它们允许您以一种简洁、易读的方式生成新的集合。
  8. 字典推导式(Dictionary Comprehension):字典推导式是Python中创建新字典的一种方式。它们允许您以一种简洁、易读的方式生成新的字典。

以上就是Python中主要的容器类型。每种类型都有其特定的用途,选择使用哪种类型取决于您的特定需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1011360.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java 基础篇】Java类型通配符:解密泛型的神秘面纱

在Java中,类型通配符(Type Wildcard)是泛型的重要概念之一。它使得我们能够更加灵活地处理泛型类型,使代码更通用且可复用。本文将深入探讨Java类型通配符的用法、语法和最佳实践。 什么是类型通配符? 类型通配符是一…

ArcGIS 10.4安装教程!

软件介绍:ArcGIS是一款专业的电子地图信息编辑和开发软件,提供一种快速并且使用简单的方式浏览地理信息,无论是2D还是3D的信息。软件内置多种编辑工具,可以轻松的完成地图生产全过程,为地图分析和处理提供了新的解决方…

计算机毕设 大数据上海租房数据爬取与分析可视化 -python 数据分析 可视化

# 1 前言 🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通…

算法与设计分析--分治算法的设计与分析

某不知名学校的第二次算法实验报告,一共四道题 全部来自力扣 第一题 ​​​​​​169. 多数元素 题目描述: 给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的&am…

Docker概念通讲

目录 什么是Docker? Docker的应用场景有哪些? Docker的优点有哪些? Docker与虚拟机的区别是什么? Docker的三大核心是什么? 如何快速安装Docker? 如何修改Docker的存储位置? Docker镜像常…

敏捷管理的4价值观12准则

一、敏捷管理的的4个价值观 个体和交互胜过流程和工具可工作的软件胜过面面俱到的文档客户合作胜过合同谈判响应变化胜过遵循计划 二、敏捷管理的12条准则 上篇解读了对于敏捷价值观的理解,这篇来聊一聊敏捷的12指导准则。关于敏捷宣言的12条准则的原始描述&…

Dokcer搭建Apache Guacamole堡垒机

一、什么是堡垒机 “堡垒机” 这个词通常指的是 “堡垒机器”(Bastion Host)的简称。堡垒机是一种计算机系统或网络设备,用于增强计算机网络的安全性。它在网络中充当一个重要的安全关口,通过限制对内部网络的访问,帮…

LeetCode(力扣)860. 柠檬水找零Python

LeetCode860. 柠檬水找零 题目链接代码 题目链接 https://leetcode.cn/problems/lemonade-change/ 代码 class Solution:def lemonadeChange(self, bills: List[int]) -> bool:five 0ten 0twenty 0for i in range(len(bills)):if bills[i] 5:five 1if bills[i] 10…

pdf怎么压缩的小一点?pdf文件压缩方法汇总

在日常生活中,我们常常需要处理大量的PDF文件。有时候,这些PDF文件可能因为内容丰富、结构复杂而体积庞大,给我们的存储和传输带来了不便。那么,如何将这些PDF文件压缩得小一点,以便更方便地使用呢? 一、嗨…

Git(6)——GitHub

目录 一、简介 二、概要 三、注册 ​四、创建仓库 五、推送本地代码 六、拉取远端代码 一、简介 在Git(5)中,我们已经对Git分支的概念和用法有了一定了解,对于在本地进行代码版本管理,其实当前所学的东西基本已经…

【个人博客系统 × Redis】“最后的升级” · 连接Redis · Redis的基本使用

【JavaEE】进阶 个人博客系统(7) 文章目录 【JavaEE】进阶 个人博客系统(7)1. linux安装Redis1.1 通过yum商店下载Redis1.2 启动Redis1.3 操作Redis 2. Redis的基本使用(关键字大小写不区分)2.1 set2.2 g…

Lombok中的@Builder注解的使用

Lombok中的Builder注解的使用 作用 Builder注解的作用主要是用来生成对象,并且可以为对象链式赋值。 引入依赖 因为Builder注解是lombok中的东西,所以第一步我们需要引入lombok的依赖,如下图: 第二步给实体类加上Builder注解…

每日一博 - Token Based Authentication VS HMAC Authentication 实现web安全

文章目录 概念HMAC工作原理 概念 Token Based Authentication和HMAC(Hash-based Message Authentication Code)Authentication都是用于身份验证和数据完整性验证的安全机制,但它们有不同的工作方式和适用场景。以下是它们的主要区别和比较&a…

idea把项目打成jar包步骤详解

最近产品需要预研一个小功能,开始后在本地开发测试好之后,需要打成jar提供出去,今天弄完了,决定把这个步骤记录下来,便于以后轻车熟路。 打成jar要有mian方法的入口,所以我们在代码中需要定义一个main方法&…

学Python的漫画漫步进阶 -- 第七步

学Python的漫画漫步进阶 -- 第七步 七、字符串7.1 字符串的表示方式7.1.1 普通字符串7.1.2 原始字符串7.1.3 长字符串 7.2 字符串与数字的相互转换7.2.1 将字符串转换为数字7.2.2 将数字转换为字符串 7.3 格式化字符串7.3.1 使用占位符7.3.2 格式化控制符 7.4 操作字符串7.4.1 …

四、数学建模之图与网络模型

1.定义 2.例题及软件代码求解 一、定义 1.图和网络是相关概念 (1)图(Graph):图是数学和计算机科学中的一个抽象概念,它由一组节点(顶点)和连接这些节点的边组成。图可以是有向的&…

VSCode配置c/c++环境 MinGW-W64 下载、安装与配置(支持最新版的GCC,目前 GCC 13.2.0) 彻底删除vscode(包括插件及配置!)

目录 一、简介 二、下载 1 旧版安装(8.1.0) 从 sourceforge.net 下载 2 新版安装(本次采用较新版本~~~) 从 github 下载 从 镜像站点 下载 自己编译 三、安装与配置 1. 在线安装(这里仅作参考了解) 2. 离线安装&…

JavaScript 知识扫盲

JavaScript 知识扫盲 写在前面一、JavaScript 写入形式二、常用输入输出三、JS 是动态类型语言四、运算符五、数组1、数组创建2、获取和修改数组元素3、新增元素4、删除元素 六、函数七、对象1、对象的创建2、属性方法的使用 八、JavaScript 和 Java 对比九、事件1、常见事件2、…

【MySQL系列】MySQL数据库索引详解

目录 一、为什么要用索引? 二、什么是索引? 三、MySQL索引使用场景 四、索引的原理 五、MySQL的存储引擎 六、索引的数据结构 七、索引如何使用 八、实际使用示例 九、优缺点、使用建议和注意事项 十、为什么Mysql不选择Hash索引? …

k8s集群中流水线部署微服务

k8s集群中流水线发布微服务 一、流水线部署微服务部署流程 二、微服务发布流程 pipeline {agent {node {label maven}}parameters {string(name: PROJECT_VERSION, defaultValue: v1.0, description: )string(name: PROJECT_NAME, defaultValue: , description: )}environment…