学习之高阶编程列表推导式,字典推导式
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相同
相关文章:

学习之高阶编程列表推导式,字典推导式
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 …...

QT实现QInputDialog中文按钮
这是我记录Qt学习过程心得文章的第三篇,主要是为了方便QInputDialog输入框的使用,通过自定义的方式,按钮中文化,统一封装成一个函数,还是写在了Skysonya类里面。 实现代码: //中文按钮文本输入对话框 QSt…...

Redis 常用指令技术解读
全文目录: 前言前言摘要简介概述Redis的核心特性Redis指令分类 核心源码解读SET和GET指令EXPIRE指令HSET和HGET指令LPUSH和LPOP指令SADD和SMEMBERS指令ZADD和ZRANGE指令 案例分析案例1:用户登录会话管理案例2:排行榜实现 应用场景演示优缺点分…...

Web前端入门
文章目录 前言1 Web前端概述1.1 网站和网页1.2 HTML语言1.3 网页的形成1.4 常用浏览器1.5 浏览器内核(渲染引擎)1.6 web标准 2 HTML标签2.1 开发工具2.2 HTML语法规则2.3 标签的关系2.4 HTML注释标签2.5 结构标签 3 常用标签3.1 标题标签3.2 段落标签3.3 换行标签3.…...

贝塞尔曲线详细讲解,如何用 Canvas 绘制三阶贝塞尔曲线?
比如我们要画一个这样的曲线,我们该怎么画了 两个点Y轴一样高,起点:(200,100)终点:(300,100)中间的弧度怎么弄了? <canvas id"c1" width"6…...

Ubuntu20.04卸载ros2 foxy版本安装ros1 noetic版本
前言 如果你ubuntu中没有ros,可以试着直接从鱼香ros一键安装包指令处开始。 卸载ros2 sudo apt-get remove ros-*接下来如果你直接使用鱼香ros的一键安装命令,会出错。 设置源 设置源,这里使用的是中科大的。 sudo sh -c . /etc/lsb-r…...

PicGo+Gitee搭建Typora图床
PicGoGitee搭建Typora图床 下载PicGo 下载链接:https://picgo.github.io/PicGo-Doc/zh/guide/#%E4%B8%8B%E8%BD%BD%E5%AE%89%E8%A3%85 配置PicGo 插件安装 在PicGo的【插件设置】中搜索gitee-uploader插件并安装 在【图床设置】下配置Gitee repo:用…...

MySQL 脱敏函数使用详解:保护数据隐私的关键手段
全文目录: 前言前言为什么需要数据脱敏?MySQL 中常用的脱敏方法1. 字符串类型数据的脱敏案例:脱敏姓名案例:脱敏邮箱 2. 数字类型数据的脱敏案例:脱敏手机号案例:脱敏身份证号 3. 自定义脱敏函数自定义姓名…...

nginx之virtual host
vhost 是“virtual host”的缩写,中文译为“虚拟主机”。在Web服务器(如Nginx、Apache等)中,虚拟主机是指在同一台物理服务器上运行多个独立的网站或应用程序的技术。每个虚拟主机都有自己的域名、文档根目录、配置文件等…...

Windows 下纯手工打造 QT 开发环境
用过 QtCreator 和 VS QT 插件,都觉得不是很理想。所以有了这个想法。 手工打造的 QT 的开发环境,是不需要安装上面两个程序的。 1、下载 vcpkg,编译 QT6 下载地址:https://github.com/microsoft/vcpkg.git 进入到 …...

k8s的安装和部署
配置三台主机,分别禁用各个主机上的swap,并配置解析 systemctl mask swap.target swapoff -a vim /etc/fstab配置这三个主机上的主机以及harbor仓库的主机 所有主机设置docker的资源管理模式为system [rootk8s-master ~]# vim /etc/docker/daemon.json…...

第十八篇:一文说清楚ICMP的底层原理
作为程序员或者网络工程师,有时候无法访问对方主机;导致这个现象的有很多原因,那要排查具体的网络原因,可能会用到ping的指令。而ping的底层实现是互联⽹控制报⽂协议(ICMP)。 ICMP 全称是 Internet Contr…...

【优选算法】(第三十二篇)
目录 ⼆进制求和(easy) 题目解析 讲解算法原理 编写代码 字符串相乘(medium) 题目解析 讲解算法原理 编写代码 ⼆进制求和(easy) 题目解析 1.题目链接:. - 力扣(LeetCode&a…...

线程(四)线程的同步——条件变量
文章目录 线程线程的同步和互斥线程同步--条件变量什么是线程同步示例--条件变量的使用示例--使用两个线程对同一个文件进行读写示例--一个读者一个写者使用条件变量来实现同步 线程 线程的同步和互斥 线程同步–条件变量 是一个宏观概念,在微观上包含线程的相互…...

二维数组的旋转与翻转(C++)(上(这只是简单讲解))
二维数组的旋转与翻转(C) 引言 在计算机科学中,二维数组是一种常见的数据结构,广泛应用于图像处理、数据挖掘、机器学习等多个领域。二维数组的旋转与翻转是处理二维数据时经常需要用到的操作。本文将详细介绍二维数组的旋转与翻…...

【在Linux世界中追寻伟大的One Piece】System V共享内存
目录 1 -> System V共享内存 1.1 -> 共享内存数据结构 1.2 -> 共享内存函数 1.2.1 -> shmget函数 1.2.2 -> shmot函数 1.2.3 -> shmdt函数 1.2.4 -> shmctl函数 1.3 -> 实例代码 2 -> System V消息队列 3 -> System V信号量 1 -> Sy…...

【大数据】Spark弹性分布式数据集RDD详细说明
文章目录 整体介绍一、定义与特性二、操作与转换三、存储级别与持久化四、依赖关系与容错机制五、优化与性能调优 常见操作支持的数据格式1.文本文件 (Text Files)2. CSV 文件3. JSON 文件4. Parquet 文件5. Sequence Files6.Hadoop文件读取A. 读取HDFS上的文本文件B. 使用Hado…...

人参玉桂膏简介
一、产品基本信息 产品名称:人参玉桂膏 产品类别:植物饮料(专为特定体质设计) 配料:精选薏苡仁、荷叶、玉米须、赤小豆等纯然植物成分,辅以麦芽糖醇液、低聚果糖调节口感,陈皮、肉桂、人参&…...

消费者Rebalance机制
优质博文:IT-BLOG-CN 一、消费者Rebalance机制 在Apache Kafka中,消费者组 Consumer Group会在以下几种情况下发生重新平衡Rebalance: 【1】消费者加入或离开消费者组: 当一个新的消费者加入消费者组或一个现有的消费者离开消费…...

消息队列介绍
一、ActiveMQ 优点:性能单台(6000)成熟,已经在很多公司得到应用。各种协议支持好,有多个语言的成熟客户端 缺点:性能较弱,缺乏大规模吞吐的场景的应用,有江河日下之感 二、RabbitMQ…...

告别@Value,Spring Boot 3.3更优雅的配置注入方案
在Spring Boot的早期版本中,我们常使用Value注解来注入配置文件中的属性值。然而,这种方式虽然简单直接,却存在一些局限,比如它只能注入基本类型的值,并且需要显式地在每个需要注入的字段上使用注解。随着Spring Boot的…...

甲虫身体图像分割系统源码&数据集分享
甲虫身体图像分割系统源码&数据集分享 [yolov8-seg-EfficientRepBiPAN&yolov8-seg-C2f-FocusedLinearAttention等50全套改进创新点发刊_一键训练教程_Web前端展示] 1.研究背景与意义 项目参考ILSVRC ImageNet Large Scale Visual Recognition Challen…...

Qt - QMenu
QMenu 1、menu转string输出 //GlobalEnum.h #include <QObject> #include <QMetaEnum> class GlobalEnum : public QObject {Q_OBJECT public:EnumTest();enum Enum_Test{ZhangSan 0,WangWu,};Q_ENUM(Enum_Test) };#define EnumToString(e) \ QMetaEnum::fromTy…...

舵机驱动详解(模拟/数字 STM32)
目录 一、介绍 二、模块原理 1.舵机驱动原理 2.引脚描述 三、程序设计 main.c文件 servo.h文件 servo.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 舵机(Servo)是在程序的控制下,在一定范围内连续改变输出轴角度并保持的电机系统。即舵机只支持…...

dvwa:文件包含、文件上传
文件包含 本地文件包含(敏感信息泄露)和远程文件包含(命令执行) 本地文件包含一般包含一些本地的敏感文件,如:/etc/passwd或/etc/shadow等 远程文件包含能使得服务器代码执行,如包含黑客vps的…...

基于 C# .NET Framework 4.0 开发实现 WCF 服务实例详解(二)——实现Windows服务内嵌WCF服务
目录 引言 1. 创建一个新的Windows服务项目 2. 添加WCF服务 2.1 添加服务接口和实现 2.2 添加服务配置 3. 实现Windows服务 3.1 修改Service1类 3.2 在项目中添加ServiceInstaller 4. 安装和运行Windows服务 4.1 编译项目 4.2 使用InstallUtil.exe安装服务 …...

【ArcGIS/C#】调用控制台处理代码
代码示例 private static string[] run_conda_process(string command, Action<string> on_msg, CancellationTokenSource cancel){if (string.IsNullOrEmpty(command)){return new string[]{null,ArcGIS.Desktop.Internal.Core.Conda.Resources.Error_Unexpected + &qu…...

06_23 种设计模式之《适配器模式》
文章目录 一、适配器模式基础知识实例 一、适配器模式基础知识 适配器模式定义:将一个类的接口转换成客户希望的另一个接 口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可 以一起工作。 Client:客户端,调用自已需要的领域接口…...

Go语言--快速入门
Go语言特点 我们先看一下简单的Go语言程序 package mainimport "fmt"func main() { // 错误,{ 不能在单独的行上fmt.Println("Hello, World!") }我们可以看到外型非常像我们的JAVA,但是不需要;作为结尾,…...

京东云主机怎么用?使用京东云服务器建网站(图文教程)
京东云主机怎么用?非常简单,本文京东云服务器网jdyfwq.com使用以使用京东云服务器搭建WordPress博客网站为例,来详细说下京东云主机的使用方法。使用京东云服务器快速搭建WordPress网站教程,3分钟基于应用镜像一键搞定,…...