Python(六十六)字典生成式

❤️ 专栏简介:本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中,我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。
☀️ 专栏适用人群 :本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无论你是学生、职场人士还是对编程感兴趣的爱好者,都能从中受益。跟着我的学习笔记一起学习python吧。
🌙专栏目标:本专栏的目标是帮助我自己记忆、方便回顾所学知识以及帮助其他想学习python的小伙伴掌握Python编程语言的基本概念和技巧,并逐步提高我们的编程能力。通过这个专栏,我们将学会如何编写Python代码,理解各种数据类型、控制结构和函数,掌握常用的Python模块和库,以及应用Python解决实际问题。

⭐️ 专栏主要内容: 主要学习python的开发环境搭建;Python的基础知识,包括变量、数据类型、条件语句和循环等;python的数据结构和算法;python的函数和模块;python的文件处理等。
🌴 专栏说明 :如果文章知识点有错误的地方,欢迎大家随时在文章下面评论,我会第一时间改正。让我们一起学习,一起进步。
💑专栏主页:从零开始的Python入门之路

在这里插入图片描述

文章目录

    • 1. 简介
    • 2. 字典生成式
    • 3. 内置函数zip()
    • 4. 示例代码
      • 示例 1:字典生成式
      • 示例 2:带条件的字典生成式
      • 示例 3:使用zip()函数创建字典
    • 6. 参考链接

1. 简介

字典(Dictionary)是一种非常有用的数据结构,它可以用于存储键值对。字典中的键(Key)必须是唯一的,而值(Value)则可以是任意类型的对象。字典提供了快速的查找和插入操作,是处理大量数据时常用的数据结构之一。

本小节将介绍字典生成式(Dictionary Comprehension)以及内置函数zip()的用法。字典生成式是一种简洁、高效的方式来创建字典,而zip()函数则可以将多个可迭代对象打包成一个元组序列,用于创建字典中的键值对。

2. 字典生成式

字典生成式是一种使用简洁语法创建字典的方法。它类似于列表生成式和集合生成式,但使用的是花括号({})来表示字典。

字典生成式的一般形式如下:

{key_expression: value_expression for item in iterable}

其中,key_expression表示生成字典键的表达式,value_expression表示生成字典值的表达式,item是可迭代对象中的每个元素。

字典生成式可以根据需要添加条件判断,以过滤要生成的键值对。例如,我们可以使用条件语句来过滤奇数值的键值对:

{key_expression: value_expression for item in iterable if condition}

3. 内置函数zip()

zip()是Python内置的函数,用于将多个可迭代对象打包成一个元组序列。它接受多个可迭代对象作为参数,并返回一个迭代器,每次迭代返回一个元组,其中包含来自每个可迭代对象的元素。

zip()函数常用于将两个列表合并为一个字典,其中一个列表作为键,另一个列表作为值。如果两个列表长度不一致,zip()函数会以最短的列表长度为准进行打包。

4. 示例代码

下面我们通过一些示例代码来演示字典生成式和zip()函数的用法。

示例 1:字典生成式

# 使用字典生成式创建一个简单的字典
numbers = [1, 2, 3, 4, 5]
squares = {x: x**2 for x in numbers}
print(squares)

运行结果:

{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

在这个示例中,我们使用字典生成式创建了一个简单的字典。numbers列表中的每个元素都作为字典的键,并且对应的值为该键的平方。

示例 2:带条件的字典生成式

# 使用带条件的字典生成式过滤奇数值的键值对
numbers = [1, 2, 3, 4, 5]
squares = {x: x**2 for x in numbers if x % 2 == 0}
print(squares)

运行结果:

{2: 4, 4: 16}

在这个示例中,我们使用带条件的字典生成式过滤了奇数值的键值对。只有当元素满足条件x % 2 == 0时,才会将其添加到字典中。

示例 3:使用zip()函数创建字典

# 使用zip()函数将两个列表合并为一个字典
keys = ['a', 'b', 'c']
values = [1, 2, 3]
dictionary = dict(zip(keys, values))
print(dictionary)

运行结果:

{'a': 1, 'b': 2, 'c': 3}

在这个示例中,我们使用zip()函数将两个列表keysvalues合并为一个字典。keys列表中的元素作为字典的键,values列表中的元素作为对应的值。

6. 参考链接

  • Python官方文档:字典生成式
  • Python官方文档:zip()函数

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

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

相关文章

VX-API-Gateway开源网关技术的使用记录

VX-API-Gateway开源网关技术的使用记录 官网地址 https://mirren.gitee.io/vx-api-gateway-doc/ VX-API-Gateway(以下称为VX-API)是基于Vert.x (java)开发的 API网关, 是一个分布式、全异步、高性能、可扩展、轻量级的可视化配置的API网关服务官网下载程序zip包 访问 https:/…

【100天精通python】Day26:文件和IO操作_文件指针的定位与移动,序列化与反序列化

目录 专栏导读 1 文件的基本操作 1.1 参考 1.2 获取文件属性: 2 定位和移动文件指针 3 序列化和反序列化 3.1 序列化与反序列化概述 3.2JSON序列化与反序列化 JSON序列化: JSON反序列化: 3.3 pickle 序列化与反序列化 pickle 序列…

Yolov8-pose关键点检测:模型部署篇 | yolov8-pose.onnx python推理

💡💡💡本文解决什么问题:Yolov8-pose关键点训练得到的模型转换成onnx格式在python下完成推理 Yolov8-Pose关键点检测专栏介绍:https://blog.csdn.net/m0_63774211/category_12398833.html ✨✨✨手把手教你从数据标记到生成适合Yolov8-pose的yolo数据集; 🚀🚀�…

vue项目中使用节流throttle 和 防抖debounce

一、节流和防抖的定义 节流:频繁输入、频繁操作的时候,保持一定频率连续触发,比如 scroll 事件、click 事件。 防抖:频繁输入、频繁操作的时候,在最后才触发事件处理函数,比如 input 输入事件。 关于节流…

【前端】鼠标事件计算与圆心形成的角度

在业务需求中,常常出现一些我们无法完成的效果图,这时需要UI切图给我们,而切图后不可避免的一些点击事件无法方便的监听 如该图圆环,其实是一张单独的图片,这种情况下只能通过js判断用户点击、拖动的鼠标位置&#xf…

carla中lka实现(一)

前言: 对于之前项目中工作内容进行总结,使用Carla中的车辆进行lka算法调试,整体技术路线: ①在Carla中生成车辆,并在车辆上搭载camera,通过camera采集图像数据; ②使用图像处理lka算法&#…

Docker-Compose编排与部署(lnmp实例)

第四阶段 时 间:2023年8月3日 参加人:全班人员 内 容: Docker-Compose编排与部署 目录 一、Docker Compose (一)概述 (二)Compose适用于所有环境: (三&#xf…

Docker实战-操作Docker容器实战(二)

导语   上篇分享中,我们介绍了关于如何创建容器、如何启动容器、如何停止容器。这篇我们来分享一下如何操作容器。 如何进入容器 可以通过使用-d参数启动容器后会进入后台运行,用户无法查看容器中的信息,无法对容器中的信息进行操作。 这个时候如果我们需要进入容器对容器…

第十二章 配置Production - 添加HL7序列管理器

文章目录 第十二章 配置Production - 添加HL7序列管理器添加HL7序列管理器创建HL7序列管理器集成和配置 HL7 序列管理器以编程方式访问 HL7 序列数据ApplicationFacilityThreadTypeNextSequenceNumber 第十二章 配置Production - 添加HL7序列管理器 添加HL7序列管理器 HL7消息…

人脸识别场景下Faiss大规模向量检测性能测试评估分析

在前面的两篇博文中,主要是考虑基于之前以往的人脸识别项目经历结合最近使用到的faiss来构建更加高效的检索系统,感兴趣的话可以自行移步阅读即可: 《基于facenetfaiss开发构建人脸识别系统》 Facenet算法的优点:高准确率&#…

HTTP隧道识别与防御:机器学习的解决方案

随着互联网的快速发展,HTTP代理爬虫已成为数据采集的重要工具。然而,随之而来的是恶意爬虫对网络安全和数据隐私的威胁。为了更好地保护网络环境和用户数据,我们进行了基于机器学习的HTTP代理爬虫识别与防御的研究。以增强对HTTP代理爬虫的识…

springboot+vue网红酒店客房预定系统的设计与实现_ui9bt

随着计算机技术发展,计算机系统的应用已延伸到社会的各个领域,大量基于网络的广泛应用给生活带来了十分的便利。所以把网红酒店预定管理与现在网络相结合,利用计算机搭建网红酒店预定系统,实现网红酒店预定的信息化。则对于进一步…

基于ROS的IMU航向锁定(C++)

文章目录 操作流程节点代码 操作流程 1、让nodeHandle发布 /cmd_vel话题; 2、设定一个目标朝向角,当姿态信息中的朝向角和目标朝向角不一致时,控制机器人转向目标朝向角。 节点代码 /***************************************************…

DBeaver安装+连接使用mysql

1、下载Dbeaver 官网:Download | DBeaver Community github:Releases dbeaver/dbeaver (github.com) 这里是在github下载的,下的是23.1.3版本 (根据系统自己选择,这里下的是windows的版本) 2、安装 3、…

单元测试之 - Review一个微服务的单元测试

这里以github上一个microservice的demo代码为例,来看看如何为一个完整的服务编写单元测试。具体代码如下所示,我们重点查看一下catalog和customer,order中的单元测试有哪些。 首先来看catalog服务的单元测试,这个服务下面主要编写了CatalogWe…

物联网|按键实验---学习I/O的输入及中断的编程|函数说明的格式|如何使用CMSIS的延时|读取通过外部中断实现按键捕获代码的实现及分析-学习笔记(14)

文章目录 通过外部中断实现按键捕获代码的实现及分析Tip1:函数说明的格式Tip2:如何使用CMSIS的延时GetTick函数原型stm32f407_intr_handle.c解析中断处理函数:void EXTI4_IRQHandler 调试流程软件模拟调试 两种代码的比较课后作业: 通过外部中断实现按键捕获代码的实…

c++调用ffmpeg api将视频文件内容进行udp推流

代码及工程见https://download.csdn.net/download/daqinzl/88156926 开发工具&#xff1a;visual studio 2019 播放&#xff0c;采用ffmpeg工具集里的ffplay.exe, 执行命令 ffplay udp://238.1.1.10:6016 主要代码如下: #include "pch.h" #include <iostream&g…

5G网络在中国已经普及了,政策支持加大5G投入力度,这意味着什么呢?

5G网络是新型基础设施的重要组成部分&#xff0c;中国5G商用牌照已发放四年多&#xff0c;目前发展得怎样了&#xff1f;最近&#xff0c;官方公布了最新数据&#xff0c;截至7月底&#xff0c;中国5G移动电话用户已达7亿户&#xff0c;5G基站累计达到293.7万个&#xff0c;5G覆…

【perl】报错合集

perl报错合集 &#xff08;注&#xff1a;可能会不定时更新&#xff09; 1.Name “main::x” used only once: possible typo at … 1.Name "main::x" used only once: possible typo at ...给某个变量赋值但是从来没有用它&#xff0c;或者变量之只用一次但没有…

MobPush iOS SDK iOS实时活动

开发工具&#xff1a;Xcode 功能需要: SwiftUI实现UI页面&#xff0c;iOS16.1以上系统使用 功能使用: 需应用为启动状态 功能说明 iOS16.1 系统支持实时活动功能&#xff0c;可以在锁定屏幕上实时获知各种事情的进展&#xff0c;MobPushSDK iOS 4.0.3版本已完成适配&#xf…