【Python数据结构与判断7/7】数据结构小结

目录

序言

整体回忆

定义方式

访问元素

访问单个元素

访问多个与元素

修改元素

添加元素

列表里添加元素

字典里添加元素

删除元素

in运算符

实战案例

总结


序言

        今天将对前面学过的三种数据结构:元组(tuple)、列表(list)和字典(dict),进行一个复习小结。

整体回忆

        先来整体回忆一下这三种数据结构的基本概念~

        元组能存储多个不同类型的数据,且是有序的。但它是不可变的,因此不能进行修改、删除或添加元素的操作。

        列表和元组非常相似,唯一的不同是列表的元素是可以修改的。

        字典的元素以键值对(key-value)的形式保存,是无序的。和列表一样,字典可以修改。

定义方式

        定义元组、列表和字典的方式如图所示,分别使用小括号 () 、方括号 [] 和花括号 {} 
三种数据结构的每一项元素都是由逗号分隔开

访问元素

访问单个元素

        元组和列表使用索引来访问某一个位置的元素。字典通过来查找对应的值。

访问多个与元素

        对于元组和列表来说,除了访问单个元素外,还可以使用切片来截取多个连续的元素。切片需要使用冒号来分隔切片开始的位置和切片终止的位置。
        同时,遵循“左闭右开”原则,就是取左边的数据,不取右边的数据。

        切片时,开始位置和结束位置的数字,还有三种填写情况:
1. 只填写结束位置的数字:默认从第一个元素开始切片。
2. 只填写开始位置的数字:默认从开始位置切片,取到最后一个元素。
3. 两侧数字都不填写:取列表中的所有元素。

修改元素

        对列表和字典进行修改,可以使用列表的索引或字典的键,访问到需要修改的元素后,直接重新赋值即可。

添加元素

列表里添加元素

        往列表里添加内容有两种方式:
1. 如果想在列表的末尾增加一个元素,可以使用 append() 语句,将想要追加的内容放入append() 语句的括号内即可。

2. 如果想在列表的任意位置添加元素,则可以使用 insert() 语句,需要依次传入:插入的元素位置和要插入的元素。

字典里添加元素

        对于字典,添加新元素的方式是直接指定一个新的键,然后对它进行赋值。
        示例中,先通过重新赋值更改了"Gary"键所对应的值,再指定一个新的键"Qian",通过赋值将它对应的值设置为18。

删除元素

        从列表中删除一个元素时,我们使用pop()功能,通过这个元素的索引,来进行删除。
在字典中,依旧使用pop()功能,通过这个元素的键,来进行删除。

in运算符

        想要快速判断列表或者元组中是否有某一个元素,可以使用in运算符。in运算符的左边是要查找的元素,右边是定义的元组或列表。in运算的结果,是一个布尔值(True/False)。

        同样,当我们不知道字典有哪些键的时候,也可以通过in运算来检查字典是否包含某个键。

实战案例

实战案例:修改密码

        在修改密码的时候,经常会出现新设置的密码与从前的密码一致,系统自动识别出来,无法予以更改。
        这个机制其实通过列表就可以实现:
将每一次设置的密码都存入到一个列表password中,重新设置密码"yequ8888"时,通过if...else...语句以及in运算符判断"yequ8888"否存在于列表中。
        如果存在,则无法修改密码,使用print()输出:"密码修改失败"。
        如果不存在列表中,则可以修改密码,使用print()输出:"密码修改成功",并将"chestnut8888"追加到列表里。
        在最后,通过print()输出列表password。

参考代码:

# 定义一个列表password
password = ["python666", "codingisFun", "chestnut123", "789goPython", "BugAndDebug", "runtimeError"]# 新密码newPassword
newPassword = "chestnut8888"# TODO 根据题目,完成剩下的代码
if newPassword in password:print("密码修改失败")
else:print("密码修改成功")password.append("chestnut8888")
print(password)

运行结果:

总结

        今天,我们从以下几个方面复习了元组(tuple)、列表(list)和字典(dict):
1. 定义方式
2. 访问元素
3. 修改元素
4. 添加元素
5. 删除元素

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

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

相关文章

微前端框架 qiankun 配置使用【基于 vue/react脚手架创建项目 】

qiankun官方文档:qiankun - qiankun 一、创建主应用: 这里以 vue 为主应用,vue版本:2.x // 全局安装vue脚手架 npm install -g vue/clivue create main-app 省略 vue 创建项目过程,若不会可以自行百度查阅教程 …

【Docker】常用命令 docker restart

文章目录 什么是docker restart命令基本用法常用选项-t:指定重新启动容器的超时时间-f:强制重新启动容器 实际示例重新启动一个正在运行的Nginx容器强制重新启动一个运行中的数据库容器 总结 在Docker中, docker restart命令用于重新启动正在…

java垃圾回收-三色标记法

三色标记法 引言什么是三色标记法白色灰色黑色 三色标记过程三色标记带来的问题多标问题漏标问题 如何弥补漏标问题增量更新原始快照总结 引言 在CMS,G1这种并发的垃圾收集器收集对象时,假如一个对象A被GC线程标记为不可达对象,但是用户线程又把A对象做…

MySQL 常见用法练习

LIMIT [参数1]--m,参数2--n; #表示从跳过m条数据开始取n行数据 #参数1为可选参数,表示跳过m条数据(默认为0) eg:1表示从第二行开始 #参数2为必选参数,表示取几行数据 SELECT *FROM employees ORDER BY hire_date DESC LIMIT 1; SELECT *FROM employees ORDER BY hire…

数字化经济的前沿:深入了解 Web3 的商业模式

随着区块链技术的迅速发展,Web3作为一种新型的互联网范式,正逐渐引起人们的关注。它不仅仅是一种技术革新,更是一种商业模式和价值观的转变。本文将深入探讨Web3的商业模式,以及它对数字化经济的影响。 1. 理解Web3的商业模式 We…

解决 Java 错误 Unreachable Statement

本篇文章介绍了 Java 中的 unreachable statement 错误。 Java中出现 unreachable statement 错误的原因 当我们尝试在分支控制流语句之后放置语句时,会发生不可到达语句错误。 分支语句包括 break、continue 和 return,它们用于跳转到代码的不同部分。…

go get x509:certificate signed by unknown authority

概述 在arm设备上构建golang 1.22的Docker镜像,用来做程序的编译镜像,直接安装用ubuntu作为基础镜像,构建好的镜像,在编译的时候执行go get的时候,会报下面错误 go: github.com/***: Get "https://goproxy.cn/g…

Qt教程3-Ubuntu(x86_64)上配置arm64(aarch64)交叉编译环境及QT编译arm64架构工程

详见: Qt教程3-Ubuntu(x86_64)上配置arm64(aarch64)交叉编译环境及QT编译arm64架构工程

算法---滑动窗口练习-4(无重复字符的最长子串)

无重复字符的最长子串 1. 题目解析2. 讲解算法原理3. 编写代码 1. 题目解析 题目地址:点这里 2. 讲解算法原理 算法的主要思想是使用滑动窗口来维护一个不含重复字符的子串。定义两个指针 left 和 right 分别表示窗口的左边界和右边界。还定义了一个数组 hash 来记…

华为认证云计算专家(HCIE-Cloud Computing)–单选题

华为认证云计算专家(HCIE-Cloud Computing)–单选题 13.( 单选)WAF服务属于以下哪个安全子领域() A 应用安全 B 数据安全 C 主机安全 D 安全管理 E 网络安全 正确答案:A 24 (单选题)以下关于非容灾,Global与Region融合部署场景&…

redis配置文件详情

redis自带两个conf配置文件,redis.conf为redis配置文件,sentinel.conf为哨兵配置文件。 注意:修改配置文件需要重启生效。 一、redis.conf为redis的配置文件 # redis进程是否以守护进程的方式运行,yes为是,no为否(不…

Apache Paimon 的 CDC Ingestion 概述

CDC Ingestion 1)概述 Paimon支持schema evolution将数据插入到Paimon表中,添加的列将实时同步到Paimon表,并且无需重启同步作业。 目前支持的同步方式如下: MySQL Synchronizing Table: 将MySQL中的一个或多个表同步到一个Pa…

【算法与数据结构】深入解析二叉树(一)

文章目录 📝数概念及结构🌠 树的概念🌉树的表示🌠 树在实际中的运用(表示文件系统的目录树结构) 🌉二叉树概念及结构🌠概念🌉数据结构中的二叉树🌠特殊的二叉…

Spring web MVC(2)

1、RequestMapping称为路由映射(既是类注解也是方法注解提供访问路径) 2、RequestParam起到重命名的作用,也起到绑定的作用,传递集合list时会用到,多个值绑定给list,默认是必传参数如果不传参数需要设置re…

如何在Windows 10上打开和关闭平板模式?这里提供详细步骤

前言 默认情况下,当你将可翻转PC重新配置为平板模式时,Windows 10会自动切换到平板模式。如果你希望手动打开或关闭平板模式,有几种方法可以实现。​ 自动平板模式在Windows 10上如何工作 如果你使用的是二合一可翻转笔记本电脑&#xff0…

Spring, SpringBoot, SpringCloud,微服务

1,SSM (Spring+SpringMVC+MyBatis) SSM框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容),常作为数据源较简单的web项目的框架。 Spring MVC 是 Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,本质上相当于 Servlet,Controlle…

vue 基于elementUI/antd-vue, h函数实现message中嵌套链接跳转到指定路由 (h函数点击事件的写法)

效果如图: 点击message 组件中的 工单管理, 跳转到工单管理页面。 以下是基于vue3 antd-vue 代码如下: import { message } from ant-design-vue; import { h, reactive, ref, watch } from vue; import { useRouter } from vue-router; c…

PY32离线烧录器功能介绍,可批量烧录,支持PY32系列多款单片机

PY32离线烧录器可以对PY系列单片机进行批量烧录,现支持PY32F002A/002B/002/003/030/071/072/040/403/303芯片各封装和XL2409,XL32F001/003等芯片。PY32离线烧录器需要搭配上位机软件才能使用,上位机软件在我们官网(www.xinlinggo.…

代码随想录刷题第60天

最后一题了。最后一题是柱状图中最大的矩形https://leetcode.cn/problems/largest-rectangle-in-histogram/,和接雨水遥相呼应的一道题,我们需要找到当前遍历数字左右两边第一个小于当前数字的值,通过保证单调栈中数字为递减顺序,…

Hive集合函数 collect_set 和 collect_list 使用示例

Hive集合函数 collect_set 和 collect_list 使用示例 在Hive中, collect_set 和 collect_list 是用于收集数据并将其存储为集合的聚合 函数。以下是它们的语法: 1. collect_set(expression)- expression : 要收集的数据表达式。collect_set 函数用于将…