当前位置: 首页 > ds >正文

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.xdnf.cn/news/2923.html

相关文章:

  • 清洁电力转换技术全球引领者——阳光电源,如何搭建数字化业务平台?
  • 代码随想录打卡|Day29 动态规划Part02(不同路径、不同路径2、整数拆分、不同的二叉树搜索)
  • 第十二届蓝桥杯 2021 C/C++组 空间
  • 什么是数据中心代理IP?有哪些用途?
  • Spring之IoC控制反转
  • 【Maven】子POM与父POM
  • C++23/26 静态反射机制深度解析:编译时元编程的新纪元
  • 一文读懂布隆过滤器:特性、应用与局限
  • docker存储
  • 在g2o图优化框架中,顶点(Vertex)和边(Edge)的定义与功能的区别
  • 基于Python镜像创建docker镜像时pip install一直出现NewConnectionError的一种解决办法
  • AGV、AMR机器人控制器x86/RK3588/NV各有什么优劣势?
  • 【Stable Diffusion】使用教程:从原理到实战,全面掌握AI绘画
  • VMware安装Ubuntu实战分享
  • 白光干涉技术在高精度表面形貌测量中的实际应用
  • 永磁同步电机控制算法-转速环电流环SMC控制器
  • 漫反射实现+逐像素漫反射+逐像素漫反射实现
  • 机器学习分类模型性能评估:应对类别不平衡的策略与指标
  • 数据结构 RBT 插入操作的 Python 代码实现
  • EMB量产首航!炯熠电子引领「线控底盘革命」
  • SOLIDWORKS修改模型默认颜色教程
  • Unity AI-使用Ollama本地大语言模型运行框架运行本地Deepseek等模型实现聊天对话(一)
  • WebXR教学 06 项目4 跳跃小游戏
  • for(auto it: vec)和for(auto it: vec)的区别以及使用场景
  • Java—— Arrays工具类及Lambda表达式
  • 联合体union的特殊之处
  • 软件测试实验报告3 | 自动化测试工具的基本操作
  • 局域网传文件——基于flask实现
  • 9.Three.js中 ArrayCamera 多视角相机详解+示例代码
  • RISCV学习(5)GD32VF103 MCU架构了解