python22-元组、列表、字典、集合推导式

课程:B站大学
记录python学习,直到学会基本的爬虫,使用python搭建接口自动化测试就算学会了,在进阶webui自动化,app自动化

循环语句小作业

    • 元组推导式
    • 列表推导式
    • 字典推导式
    • 实践是检验真理的唯一标准


推导式
简介
Python 推导式是一种独特的数据处理方式,可以从一个数据序列构建另一个新的数据序列的结构体。

Python 支持各种数据结构的推导式:

  • 元组 tuple 推导式
  • 列表 list 推导式
  • 字典 dict 推导式
  • 集合 set 推导式

元组推导式

元组推导式可以利用 range 函数、元组、列表、字典和集合等数据类型,快速生成一个满足指定需求的元组。

格式:

(out_exp_res for item in Sequence )

(out_exp_res for item in Sequence if conditional )

  • out_exp_res:生成元素表达式,可以是有返回值的函数。
  • for out_exp in Sequence:迭代 Sequence 将 out_exp 传入到 out_exp_res 表达式中。
  • if condition:条件语句,可以过滤 Sequence 中不符合条件的值。
    示例:
# 简单的元组推导式
t1 = (x for x in range(1,10))
# 生成128位ASCII码元组
t2 = (chr(x) for x in range(128))
# 生成100以内能被7整除所有数字的元组
t3 = (x for x in range(100) if x%7==0)
# 生成99乘法表结果元组
t4 = (x*y for x in range(1,10) for y in range(1, x+1))
words = ["apple", "banana", "cherry"]
upper_words = (word.upper() for word in words)

列表推导式

列表推导式与元组推导式的区别:

格式上外部由圆括号包裹的表达式改为中括号
格式:

[out_exp_res for item in Sequence ]

[out_exp_res for item in Sequence if conditional ]

  • out_exp_res:生成元素表达式,可以是有返回值的函数。
  • for out_exp in Sequence:迭代 Sequence 将 out_exp 传入到 out_exp_res 表达式中。
  • if condition:条件语句,可以过滤 Sequence 中不符合条件的值。

示例:

# 简单的元组推导式
l1 = [x for x in range(1,10)]
# 生成128位ASCII码元组
l2 = [chr(x) for x in range(128)]
# 生成100以内能被7整除所有数字的元组
l3 = [x for x in range(100) if x%7==0]
# 生成99乘法表结果元组
l4 = [x*y for x in range(1,10) for y in range(1, x+1)]
# 将列表中的字符串转换为大写
words = ["apple", "banana", "cherry"]
upper_words = [word.upper() for word in words]

字典推导式

字典推导式与前两种推导式的区别

推导式使用花括号包裹
结果表达式需要使用 key-value 形式
格式:

{ key_expr: value_expr for value in collection }

{ key_expr: value_expr for value in collection if condition }

示例:

names = ['Bob','Tom','alice','Jerry','Wendy','Smith']
# 将列表中各字符串值为键,各字符串的长度为值,组成键值对
newdict = {name:len(name) for name in names}
集合推导式
集合推导式与字典推导式的区别在于结果表达式是单一结果,不是 key-value 形式。格式::{ expression for item in Sequence }{ expression for item in Sequence if conditional }示例:data = ['Bob','123','Tom','ab123','alice','123abc','Jerry','456','Wendy','554','Smith']
# 筛选列表中的数字字符串
newset = {n for n in data if n.isdigit()}

推导式的优点
简洁高效 推导式允许在一行代码中完成复杂的生成操作,避免了使用显式的循环和临时变量的繁琐过程。可以大大减少代码量,并提高编码效率。
可读性好 推导式使用简洁的语法,将迭代、条件判断和表达式结合在一起,使得代码更加紧凑和易于理解。它提供了一种清晰、直观的方式来表达列表生成的逻辑,使得代码更加可读性强,降低了出错的可能性。
灵活性强 推导式非常灵活,可以根据需要添加条件判断、多个迭代变量和嵌套结构,以满足不同的需求。这使得推导式适用于各种场景,从简单的数据转换到复杂的筛选和操作,都可以通过简单而直观的语法实现。
推导式提供了一种简洁高效、可读性好和灵活性强的方法来处理可迭代数据。

实践是检验真理的唯一标准

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

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

相关文章

探索 CameraCtrl模型:视频生成中的精确摄像机控制技术

在当今的视频生成领域,精确控制摄像机轨迹一直是一个具有挑战性的目标。许多现有的模型在处理摄像机姿态时往往忽略了精准控制的重要性,导致生成的视频在摄像机运动方面不够理想。为了解决这一问题,一种名为 CameraCtrl 的创新文本到视频模型…

跨端开发技术总结

1.electron: 基于node.js 桌面端:window / linux / macos 手机端:无 页面:网页开发相关技术都可以 2.tauri 基于rust 桌面端:window / linux / macos 手机端:android / IOS 页面:网页开…

单片机-89C51部分:7、中断

飞书文档https://x509p6c8to.feishu.cn/wiki/A5gcwyL5giq1JOkkcsscn8eLnzf 一、中断的作用 中断是为使单片机具有对外部或内部随机发生的事件实时处理而设置的,中断功能的存在,很大程度上提高了单片机处理外部或内部事件的能力。它也是单片机最重要的功…

0805登录_注册_token_用户信息_退出-网络ajax请求2-react-仿低代码平台项目

文章目录 1 JWT1.1 JWT结构1.2 工作流程1.3 优点1.4 缺点1.5 安全实践1.6. 适用场景1.7 JWT与OAuth2**8. 示例代码(Node.js)** 2 用户mock和api3 注册4 登录5 token存储6 请求拦截器设置token6 获取用户信息7 退出登录结语 1 JWT JSON Web Token&#x…

大模型入门

一、模型入门路径 1. 学习预备知识 编程语言:熟练掌握Python编程语言,包括基本语法、数据结构(列表、字典、元组等)、面向对象编程、文件操作等。Python有丰富的机器学习和深度学习库,方便进行大模型的开发和实验。数…

把dll模块注入到游戏进程的方法_插APC注入

一、概述 APC是异步过程调用,系统创建线程的时候会为线程创建一个APC队列,当线程调用SleepEx,WaitSingleObjectEx等函数时,并把线程状态被设置为可提醒状态时,线程并不会睡眠,而是检查APC队列是否为空,如果不为空,转去执行APC队列中的每一项,因此给目标进程中的线程插…

git 如何清空当前分支的历史提交记录,仅保留最后一次提交

本方法基于新建 Git 孤立分支实现: 1. ​​首先检出待清理的分支 在 IDEA 右下角检查当前分支名称 或执行 git branch 确认。如果不在目标分支上,会显示 (HEAD detached at xxxxx),这时需要先切换分支: git checkout 原分支名 2.…

【C++】Googletest应用

Googletest 1 配置 使用cmake配置: 具体文件后面上传补充 ./test.out --gtest_filterXXXTest.xxx 2 gdb 为了跟踪流程,可以使用gdb; gdb ./xxx.out gdb --args ./gtest --gtest_filterxxx.xxx设置运行参数 set args --gtest_filterxxx.…

JavaScript:从DOM概述到window对象的常见事件

一、BOM概述 1.BOM的概念 BOM(Browser Object Model)即浏览器对象模型,它提供了独立于内容而与浏览器窗口进行交互的对象,其核心对象是window 2.BOM的构成 BOM比DOM更大,它包含DOM window对象是浏览器的顶级对象&a…

qobject与event事件应用

int main(int argc, char *argv[]) {QApplication a(argc, argv);MyWidget mainWidget;mainWidget.setWindowTitle("QObject与事件处理示例");mainWidget.resize(200, 200);mainWidget.show();return a.exec(); }QApplication a(argc, argv);:创建 QAppli…

QTableView复选框居中

目录 方法一:QSS方法2:自定义复选框委托类一、构造函数 CheckBoxDelegate()二、paint() 方法三、editorEvent() 方法四、关键设计要点五、扩展应用场景六、代码示例(补充) 方法一:QSS QTableView::indicator {position: relative…

基于QT的仿QQ音乐播放器

一、项目介绍 该项目是基于QT开发的⾳乐播放软件,界面友好,功能丰富,主要功能如下: 窗口hand部分: 点击最小化按钮,窗口最小化 点击最大化按钮,窗口最大化 点击关闭按钮,程序退出 …

SQL知识点合集---第二弹

数据一 <select id"listPositionAuditCheckSample" resultType"net.nxe.cloud.content.server.entity.PositionAuditCheckSample"><trim prefixOverrides"union all"><if test"userSampleCount ! null and userSampleCount…

【QT】QT控制硬件

QT控制硬件 1.上位机程序开发2.具体例子控制led灯3. linux中的函数跟QT类里面的函数同名&#xff0c;发生冲突4.示例代码 1.上位机程序开发 QT做一个上位机程序&#xff0c;控制底层的硬件设备(下位机) 总结&#xff1a; 在构造函数里面去初始化&#xff0c;打开硬件驱动在析…

Flutter介绍、Flutter Windows Android 环境搭建 真机调试

目录 Flutter介绍 Windows 环境搭建 1.安装配置JDK 2.下载安装Android Studio 3.下载配置Flutter SDK ​4.运行Flutter doctor命令检测环境是否配置成功 ​5.打开Android Studio安装Flutter/Dart 插件 ​6.插件运行Flutter项目 ​编辑 Flutter Android真机调试 Flut…

Android Studio 中使用 SQLite 数据库开发完整指南(Kotlin版本)

文章目录 1. 项目准备1.1 创建新项目1.2 添加必要依赖 2. 数据库设计3. 实现数据库3.1 创建实体类 (Entity)3.2 创建数据访问对象 (DAO)3.3 创建数据库类 4. 创建 Repository5. 创建 ViewModel6. 实现 UI 层6.1 创建笔记列表 Activityactivity_notes_list.xmlNotesListActivity…

Vue基础(7)_计算属性

计算属性(computed) 一、使用方式&#xff1a; 1.定义计算属性&#xff1a; 在Vue组件中&#xff0c;通过在 computed 对象中定义计算属性名称及对应的计算函数来创建计算属性。计算函数会返回计算属性的值。 2.在模板中使用计算属性&#xff1a; 在Vue的模板中&#xff0c;您…

辛格迪客户案例 | 华道生物细胞治疗生产及追溯项目(CGTS)

01 华道&#xff08;上海&#xff09;生物医药有限公司&#xff1a;细胞治疗领域的创新先锋 华道&#xff08;上海&#xff09;生物医药有限公司&#xff08;以下简称“华道生物”&#xff09;是一家专注于细胞治疗技术研发与应用的创新型企业&#xff0c;尤其在CAR-T细胞免疫…

[26] cuda 应用之 nppi 实现图像格式转换

[26] cuda 应用之 nppi 实现图像格式转换 讲述 nppi 接口定义通过nppi实现 bayer 格式转rgb格式官网参考信息:http://gwmodel.whu.edu.cn/docs/CUDA/npp/group__image__color__debayer.html#details1. 接口定义 官网关于转换的原理是这么写的: Grayscale Color Filter Array …

2025“钉耙编程”中国大学生算法设计春季联赛(8)10031007

题目的意思很好理解找从最左边到最右边最短路&#xff08;BFS&#xff09; #include <bits/stdc.h> using namespace std; int a[510][510]; // 存储网格中每个位置是否有障碍&#xff08;1表示有障碍&#xff0c;0表示无障碍&#xff09; int v[510][510]; // 记录每…