python系列三推导式
1.1. 概述:
Python推导式是从一个数据集合构建另外一个新的数据结构的语法结构. 最常见的就是列表的推导式
1.2. 详细描述:
列表推导式的语法:[expr for value in collection if condition]
其中:
1). collection: 原始列表
2). value:列表中的原始数据
3). ifcondition: 过滤value的条件,满足条件再传入expr. 可选表达
4). expr: 对满足条件的value进一步处理后生成新的元素放在新的列表中
字典推导式的语法:{ key_expr: value_expr for key_expr,value_expr in collection if condition}
其中:
1). collection:可迭代对象
2). key_expr: 键表达式
3). value_expr:值表达式
4). ifcondition: 过滤value的条件,满足条件再传入expr. 可选表达式
5). expr: 对满足条件的value进一步处理后生成新的元素放在新的字典中
1.3. 应用场景:
#1、获取0-100的奇数. list1=range(0,101) newlist1 = [ i for i in list1 if i%2 ] print(newlist1) #2、将第一个列表中的元素作为键,第二个列表中的元素作为值生成新的字典 # zip()函数可以成对读取元素 questions = ["name","age","hobby"] answers = ["tom","19","swimming"] dict = { key:q for key,q in zip(questions,answers) if not key == q} print(dict) #3、得到当前目录下所有的文件 import os files = [filename for filename in os.listdir("C:/AA/doc/") if os.path.isfile("C:/AA/doc/"+filename)] print(files)
另一个经典的算法问题:斐波那契数列又称黄金分割数列,因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列如下,以递归的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)
使用生成器的方式实现:
# 使用生成器方式实现 # 生成器是一个特殊的程序,可以被用作控制循环的迭代行为,python中生成器是迭代器的一种,使用yield返回值函数,每次调用yield会暂停, # 而可以使用next()函数和send()函数恢复生成器。 # 而且返回值不再是一个列表,而是一个生成器.可以通过for in 或者next()来取值 def fibonaci(n): i,num1,num2 = 0,1,1 while i < n: yield num1 num1,num2 = num2 ,num1 + num2 i = i+1 print([i for i in fibonaci(6)])
标签:
python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现