学习之高阶编程列表推导式,字典推导式

def test_list_one():
“”“快速生成一个[“data0”, “data1”,]列表”“”
list1 = []
for i in range(100):
list1.append(“data{}”.format(i))
return list1

def test_list_two():
“”"
快速生成一个[“data0”, “data1”,]列表
列表推导式:[x for x in xx]
推导式的优势:
语法简洁性能更好
先执行for循环,将去出来的值,存放到x
再将x存放到[]列表中
return:
“”"
list2 = [“data{}”.format(i) for i in range(100)]
return list2

需求:使用列表推导式生成一个[0,5,10,15,20,25,30,35,40]

方式一:

def test_list_three():
list3 = []
for i in range(0, 51):
if i % 5 == 0:
list3.append(i)

return list3

方式二:

def test_list_four():
“”"
[x for x in 可迭代对象 if 过滤条件]
:return:
“”"
list4 = [i for i in range(51) if i % 5 == 0]
return list4

def test_list_five():
list5 = [“data{}”.format(i) if i % 2 == 0 else “lemon{}”.format(i) for i in range(10)]
return list5

推导式结合条件语句:

形式一:[x for x in XX if 条件]----需求:生成一个[“data1”, “data3”, “data5”,]的列表

形式二:[x1 if 条件 else x2 for x in XXX]----三元运算符:x1 if else x2 需求:生成一个[“data0”,“lemon1", “data2”,"lemon3,]的列表

三元运算符

a = 10
if a > 10:
res = True
else:
res = False

使用三元运算符表达式如下:

res = True if a > 10 else False

注意事项:

一般只用列表推导式来创建新的列表

尽量保持简洁,代码超过了两行,就要考虑使用for循环

if name == ‘main’:
print(test_list_one())
print(test_list_two())
print(test_list_three())
print(test_list_four())
print(test_list_five())

如果:列表嵌套列表就不建议使用列表推导式

字典推导式

有一个列表i,把他转换为一个元素下标为键,值为元素值的字典格式的数

{key:value for key,value in XXX}

def test_dict_one():
li = [“a”, “b”, “c”, “d”, “e”, “f”]
dict_one = dict()
for k, v in enumerate(li):
dict_one[k] = v

return dict_one

def test_dict_two():
li = [“a”, “b”, “c”, “d”, “e”, “f”]
dict_two = {k: v for k, v in enumerate(li)}
return dict_two

def test_set_one():
lb = [1, 20, 30, 1, 20]
set_one = set(lb)
return set_one

def test_set_two():
lb = [1, 20, 30, 1, 20]
set_two = {i for i in lb}
return set_two

#使用字典推倒是将下面字符串格式的数据,改成字典类型的数据

cookie_str='BIDUPSID=D0727533D7147B7:PSTM=530348042:BAIDUID=B1005C9BC2EB28;sugstore=0; cfduid=doa13458f8ac2a;BD_uPN=2314353;ispeed_1sm=2;BDORZ=B490B5EBF6F3CD402

cookie_str = ‘BIDUPSID=D0727533D7147B7;PSTM=530348042;BAIDUID=B1005C9BC2EB28;sugstore=0; cfduid=doa13458f8ac2a;BD_uPN=2314353;ispeed_1sm=2;BDORZ=B490B5EBF6F3CD402’

使用分号分割字符串得到键值对列表

kv_pairs = cookie_str.split(‘;’)

使用字典推导式将键值对转换为字典

cookies_dict = {k.strip(): v.strip() for pair in kv_pairs if pair for k, v in (pair.split(‘=’, 1),)}

print(cookies_dict)

if name == ‘main’:
print(test_dict_one())
print(test_dict_two())
print(test_set_one())
print(test_set_two())

外面是[]就是列表推导式

外面是{}有可能是字典推导式,也有可能是集合—集合是特殊的列表,集合的key与value相同

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

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

相关文章

《Linux运维总结:基于ARM64+X86_64架构CPU使用docker-compose一键离线部署mongodb 7.0.14容器版分片集群》

总结:整理不易,如果对你有帮助,可否点赞关注一下? 更多详细内容请参考:《Linux运维篇:Linux系统运维指南》 一、部署背景 由于业务系统的特殊性,我们需要面向不通的客户安装我们的业务系统&…

charAt,chartCodeAt,codePointAt,fromCodePoint,fromCharCode

生僻字的length算2,有些空格是特殊空格,比如\u3000 u3000不是全角空格,u3000是表意字空格(Ideographic Space),宽度和一个表意字(汉字)相同。它应当被当做汉字来处理。比如,在一些排版中&#x…

Python安装|PyCharm Professional 下载安装教程。2024最新版,亲测使用!

一、下载地址: 二、Python的下载及安装: 1、从上面网址进入Python官网 2、安装流程图: 双击已经下载好的python-*.*.*-amd64.exe文件,开始安装 最后就等它自己安装完成就好了 3、检验是否安装完成: windowsR快捷键…

Spring系列 循环依赖

文章目录 注入方式循环依赖的场景单例创建流程getSingletoncreateBeandoCreateBeancreateBeanInstance 循环依赖分析为什么都使用构造函数无法解决?为什么使用Autowired可以解决?为什么要添加到 earlySingletonObjects 缓存中?allowCircularR…

计算机毕业设计 基于Python音乐平台的设计与实现 Python毕业设计 Python毕业设计选题 Vue 前后端分离【附源码+安装调试】

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

windows C++-移除界面工作线程(一)

本文档演示了如何使用并发运行时将 Microsoft 基础类 (MFC) 应用程序中由用户界面 (UI) 线程执行的工作移动到工作线程。 本文档还演示了如何提高冗长绘制操作的性能。 通过将阻塞性操作(例如,绘制)卸载到工作线程来从 UI 线程中移除工作&am…

浙大数据结构:08-图8 How Long Does It Take

这道题算是较为简单的拓扑排序题&#xff0c;难度不大 机翻 1、条件准备 n,m为n个结点&#xff0c;m条边。 tim数组存到该结点完成的最早时间&#xff0c;会一点点更新 graph存有向边的时间 indegree数组存每个结点的入度 #include <iostream> #include <vector&g…

采用反相正基准电压电路的反相运算放大器

1 简介 本设计使用采用反相正基准电压的反相放大器将 –5V 至 –1V 的输入信号转换为 3.3V 至 0.05V 的输出电压。该电路可用于将传感器负输出电压转换为可用的 ADC 输入电压范围。 2 设计目标 2.1 输入 2.2 输出 2.3 电源 3 电路设计 根据设计目标&#xff0c;最终设计的电…

Python 与 Pycharm 的简易安装教程,包含Pycharm的修改

一. 官方网站 Python网址&#xff1a;python唯一的官方网址。 Pycharm网址&#xff1a;Pycharm的官方网址。 二. python安装步骤 滑动到红色框内 Downloads 导航栏。 红色框是选择适合自己电脑系统和版本的部分&#xff0c;蓝色框是选择系统的部分&#xff0c;黄色框是版本号。…

【Golang】Go语言中缓冲bufio的原理解读与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

Word中如何删除表格下一页的空白页

Reference&#xff1a; [1] Word空白页怎么都删除不掉&#xff1f;用这6个方法随便删&#xff01; - 知乎 (zhihu.com)

实现TCP Connect的断线重连机制:策略与实践

&#x1f351;个人主页&#xff1a;Jupiter. &#x1f680; 所属专栏&#xff1a;Linux从入门到进阶 欢迎大家点赞收藏评论&#x1f60a; 断线重连机制&#xff0c;它成为确保应用在网络不稳定情况下仍能持续提供服务的关键技术之一。本文旨在深入探讨TCP&#xff08;传输控制协…

使用Materialize制作unity的贴图,Materialize的简单教程,Materialize学习日志

Materialize 官网下载地址&#xff1a;http://boundingboxsoftware.com/materialize/ github源码地址&#xff1a;https://github.com/BoundingBoxSoftware/Materialize 下载地址&#xff1a;http://boundingboxsoftware.com/materialize/getkey.php 下载后解压运行exe即可 …

YoloV8改进策略:BackBone改进|CAFormer在YoloV8中的创新应用,显著提升目标检测性能

摘要 在目标检测领域,模型性能的提升一直是研究者和开发者们关注的重点。近期,我们尝试将CAFormer模块引入YoloV8模型中,以替换其原有的主干网络,这一创新性的改进带来了显著的性能提升。 CAFormer,作为MetaFormer框架下的一个变体,结合了深度可分离卷积和普通自注意力…

线性回归逻辑回归-笔记

一、线性回归&#xff08;Linear Regression&#xff09; 1. 定义 线性回归是一种用于回归问题的算法&#xff0c;旨在找到输入特征与输出值之间的线性关系。它试图通过拟合一条直线来最小化预测值与真实值之间的误差。 2. 模型表示 线性回归模型假设目标变量&#xff08;输…

深度学习基础—卷积神经网络示例

1.卷积神经网络的结构 在之前的博客《深度学习—简单的卷积神经网络》&#xff0c;仅由卷积层构成网络的全部&#xff0c;这还不是标准的网络结构&#xff0c;本文将继续介绍标准的卷积神经网络结构有哪些&#xff1f; 深度学习基础—简单的卷积神经网络https://blog.csdn.net…

[C++]使用纯opencv部署yolov11-seg实例分割onnx模型

【算法介绍】 在C中使用纯OpenCV部署YOLOv11-seg进行实例分割是一项具有挑战性的任务&#xff0c;因为YOLOv11通常是用PyTorch等深度学习框架实现的&#xff0c;而OpenCV本身并不直接支持加载和运行PyTorch模型。然而&#xff0c;可以通过一些间接的方法来实现这一目标&#x…

opencvjs 在前端的使用

一、opencv 官网 https://opencv.org/ 二、opencv是什么 三、opencvjs前端使用网站 https://docs.opencv.org/4.x/d0/d84/tutorial_js_usage.html https://docs.opencv.org/4.x/d5/d10/tutorial_js_root.html 四、opencvjs demo 举例 <!DOCTYPE html> <html>…

Ubuntu22.04之mpv播放器高频快捷键(二百七十)

简介&#xff1a; CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布&#xff1a;《Android系统多媒体进阶实战》&#x1f680; 优质专栏&#xff1a; Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a; 多媒体系统工程师系列【…

ML 系列:机器学习和深度学习的深层次总结( 15) — KNN — 第 1 部分

一、说明 K-最近邻 (KNN) 算法是一种流行的监督机器学习算法&#xff0c;用于分类和回归任务。它是非参数惰性学习算法的一个典型例子。KNN 被认为是一种惰性学习算法&#xff0c;因为它在训练阶段不对底层数据分布做出任何假设&#xff0c;也不从训练数据中学习特定模型。相反…