【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. 删除元素

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

IDEA把中国大陆高校教育邮箱都封了?

今天本想趁着快到期前,用教育邮箱续命,没想到: 天不遂人愿!只能继续申请开源项目的许可证! 可惜了,没提交在每个月:

unityprotobuf自动生成C#

Release Protocol Buffers v3.19.4 protocolbuffers/protobuf GitHub 导入Source code 里面的 csharp/src/Google.Protobuf 进入Unity 拷贝其他版本的 System.Runtime.CompilerServices.Unsafe进入工程 使用protoc-3.19.4-win32 里面的exe去编译proto文件为C# using Sys…

QT c++ 双精度数拆分和组合 Tool

本文描述QT c的双精度数拆分和合并,即双精度浮点数拆为四个16位无符号整数以及将四个16位无符号整数组合为双精度浮点数。 开发平台:win10QT6.2.4 MSVC2019 64 bit 在本文的最好列出了代码和可执行文件打包下载链接(可直接使用)…

基于Java的天然气工程运维系统(Vue.js+SpringBoot)

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统角色分类2.2 核心功能2.2.1 流程 12.2.2 流程 22.3 各角色功能2.3.1 系统管理员功能2.3.2 用户服务部功能2.3.3 分公司(施工单位)功能2.3.3.1 技术员角色功能2.3.3.2 材料员角色功能 2.3.4 安…

学会Web UI框架--Bootstrap,快速搭建出漂亮的前端界面

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 所属的专栏:前端泛海 景天的主页:景天科技苑 文章目录 Bootstrap1.Bootstrap介绍2.简单使用3.布局容器4.Bootstrap实现轮播…

java SSM在线学习网站系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM在线学习网站系统是一套完善的web设计系统(系统采用SSM框架进行设计开发,springspringMVCmybatis),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用…

【Python】新手入门学习:详细介绍迪米特原则(LoD)及其作用、代码示例

【Python】新手入门学习:详细介绍迪米特原则(LoD)及其作用、代码示例 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTor…

git、、

有学弟想快速上手git,我就发个文章吧。 git区域划分: 缓冲区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中。版本库:工作区有一个隐藏目录 .git,就是 Git 的版本…

深度学习_GoogLeNet_4

目标 知道GoogLeNet网络结构的特点能够利用GoogLeNet完成图像分类 一、开发背景 GoogLeNet在2014年由Google团队提出, 斩获当年ImageNet(ILSVRC14)竞赛中Classification Task (分类任务) 第一名,VGG获得了第二名,为了向“LeNet”致敬&#x…

Python之Web开发中级教程----创建Django项目

Python之Web开发中级教程----创建Django项目 使用虚拟环境: Workon py3_django3 1.创建Django项目 django-admin startproject name 例:git的本地仓库下新建studentmanager的项目 cd /home/go/work/gtest/ django-admin startproject bookmanager 新…

【WEEK3】 【DAY1】数据处理及跳转之乱码问题【中文版】

2024.3.11 Monday 接上文 【WEEK2】 【DAY5】数据处理及跳转之数据处理【中文版】 目录 5.3.乱码问题5.3.1.在首页编写一个提交的表单5.3.2.后台编写对应的处理类5.3.3.修改springmvc-controller.xml5.3.4.运行5.3.5.解决乱码5.3.5.1.Servlet(无法解决&#xff09…

【构建部署_Docker介绍与安装】

构建部署_Docker介绍与安装 构建部署_Docker介绍与安装Docker介绍Docker安装CentOS安装DockerCompose 构建部署_Docker介绍与安装 Docker介绍 Docker 是一个基于go语言开发的开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中&#x…

使用 ChatGPT 写高考作文

写作文,很简单,但写一篇好的作文,是非常有难度的。 想要写一篇高分作文,需要对作文题目有正确的理解,需要展现独到的观点和深入的思考,需要具备清晰的逻辑结构,需要准确而得体的语言表达。 正…

有趣的前端知识(三)

推荐阅读 有趣的前端知识(一) 有趣的前端知识(二) 文章目录 推荐阅读JS内置对象JS外部对象BOM模型history对象screen对象navigator对象 DOM(文档对象模型)DOM的方法(对于节点的操作&#xff09…

upload-labs 0.1 靶机详解

下载地址https://github.com/c0ny1/upload-labs/releases Pass-01 他让我们上传一张图片,我们先尝试上传一个php文件 发现他只允许上传图片格式的文件,我们来看看源码 我们可以看到它使用js来限制我们可以上传的内容 但是我们的浏览器是可以关闭js功能的…

Hack The Box-Monitored

目录 信息收集 rustscan dirsearch WEB web信息收集 snmpwalk curl POST身份验证 漏洞探索 漏洞挖掘 sqlmap 登录后台 提权 get user get root 信息收集 rustscan ┌──(root㉿ru)-[~/kali/hackthebox] └─# rustscan -b 2250 10.10.11.248 --range0-65535 --…

Hadoop大数据应用:Yarn 节点实现扩容与缩容

目录 一、实验 1.环境 2.Yarn 节点扩容 3.Yarn 节点缩容 二、问题 1.yarn启动服务报错 一、实验 1.环境 (1)主机 表1 主机 主机架构软件版本IP备注hadoop NameNode (已部署) SecondaryNameNode (已部署&…

宋仕强论道之华强北背包客(三十九)

华强北汹涌的人流,主要是在华强北经营的商户和来华强北的客户,还包括华强北的背包客,背包客是华强北的特殊群体,来自于全国各地甚至于世界各地,国外的背包客也是华强北国际化的主要渠道。一个是国内的背包客的渠道&…

分类预测 | Matlab实现GSWOA-KELM混合策略改进的鲸鱼优化算法优化核极限学习机的数据分类预测

分类预测 | Matlab实现GSWOA-KELM混合策略改进的鲸鱼优化算法优化核极限学习机的数据分类预测 目录 分类预测 | Matlab实现GSWOA-KELM混合策略改进的鲸鱼优化算法优化核极限学习机的数据分类预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 GSWOA-KELM分类&#xff0…

Java项目实战记录:雷达数据解析

Java项目实战记录:雷达数据解析 背景介绍 最近公司接了一个雷达相关的系统开发项目,雷达数据会由C程序进行二次处理存放到指定文件夹中,我这边使用Java程序去文件夹下读取这些雷达产品,进行解析并将数据传递到前台,由…