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

python-23-一篇文章帮你理解Python推导式

python-23-一篇文章帮你理解Python推导式

一.简介

在 Python 中,推导式(Comprehensions)是一个简洁的语法,用于通过某种可迭代对象快速生成新的对象(如列表、字典、集合等!来开始我们今天的日拱一卒!

二.推导式基本语法

expression for item in iterable if condition

  • expression:用于生成列表元素的表达式。
  • item:可迭代对象中的每个元素。
  • iterable:可迭代对象(例如,列表、字符串、元组等)。
  • condition:可选的条件,只有满足条件的元素才会被包含在新列表中。

三.列表推导式(List Comprehension)

列表推导式允许我们用一种简洁的方式基于一个可迭代对象生成一个新列表。基本语法是:

[expression for item in iterable if condition]

示例

numbers = [1, 2, 3, 4, 5]
even_squares = [x**2 for x in numbers if x % 2 == 0]
print(even_squares)
# 输出: [4, 16]

四.字典推导式(Dict Comprehension)

基本语法是:

{key_expression: value_expression for item in iterable if condition}
  • key_expression:字典的键。

  • value_expression:字典的值。

示例

numbers = [1, 2, 3, 4, 5]
filtered_dict = {x: x**2 for x in numbers if x**2 > 10}
print(filtered_dict)
# 输出: {4: 16, 5: 25}

五.集合推导式(Set Comprehension)

基本语法是:

{expression for item in iterable if condition}

示例:

numbers = [1, 2, 3, 4, 5]
filtered_set = {x**2 for x in numbers if x**2 > 10}
print(filtered_set)
# 输出: {16, 25}

五.生成器推导式(Generator Expression)

这个要注意,生成器推导式 返回的是一个生成器对象,只有在需要时才会生成数据!那么疑问来了,使用场景是什么?比如我需要一个列表用于计算,比如求和,列表包含10亿的整数元素,怎么办?直接生成列表?完蛋内存爆炸!!!!

这个时候就需要生成器来生成这个,按照需要给你这个范围内的数据,即不占用大量内存,又能解决实际问题!

成器推导式通常与 for 循环、next() 函数或者 sum() 等函数配合使用。

基本语法:

(expression for item in iterable if condition)

示例:

numbers = [1, 2, 3, 4, 5]
squared_gen = (x**2 for x in numbers)# 使用 for 循环逐个获取生成器的值
for square in squared_gen:print(square)
# 输出: 1, 4, 9, 16, 25numbers = [1, 2, 3, 4, 5]
squared_gen = (x**2 for x in numbers)
print(sum(squared_gen))  # 输出: 55

六.总结

Python基础系列的推导式,就介绍到这里,应该能帮助大家轻松掌握Python中的推导式!偷个懒,睡觉~~~

创作整理不易,请大家多多关注 多多点赞,有写的不对的地方欢迎大家补充,我来整理,再次感谢!


http://www.mrgr.cn/news/68112.html

相关文章:

  • android 使用xml设置背景图片和圆角
  • 在 Mac 和 Windows 系统中快速部署 OceanBase
  • Java基础语法①Java特点+环境安装+IDEA使用
  • 为什么要学习 Java 编程
  • FQDN(Fully Qualified Domain Name,完全限定域名)是指能够唯一标识互联网上一台主机的域名
  • MongoDB笔记02-MongoDB基本常用命令
  • 【大模型】通过Crew AI 公司的崛起之路学习 AI Agents 的用法
  • 加入鲲鹏社区,领取精美礼品!
  • uniapp组件实现省市区三级联动选择
  • 用uio正确映射读写内存mmap
  • 如何在 Java 中使用 Canal 同步 MySQL 数据到 Redis
  • 数据结构——快速排序
  • 带你用Go实现二维码小游戏(下)
  • 一文了解git TAG
  • 基于Python+Vue开发的蛋糕商城管理系统
  • C++ 判断是不是平衡二叉树
  • 【fiddler】用fiddler实现手机抓包
  • 华为OD机试 - 学生排名(Java 2024 E卷 100分)
  • LLMs之PDF:zeroX(一款PDF到Markdown 的视觉模型转换工具)的简介、安装和使用方法、案例应用之详细攻略
  • move_base
  • D365 无法在数据被选择或插入到另一个事务作用域中的缓冲区上调用 NEXT、update() 或 delete()
  • Visual Studio Code从安装到正常使用
  • 在鱼皮的模拟面试里面学习有感
  • 代码中的设计模式-策略模式
  • LLMs之RAG:《LightRAG: Simple and Fast Retrieval-Augmented Generation》翻译与解读
  • MDC(重要)