列表推导式与生成器怎么在Python中使用
今天就跟大家聊聊有关列表推导式与生成器怎么在Python中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
1. 先看两个列表推导式
deft1(): func1=[lambdax:x*iforiinrange(10)] result1=[f1(2)forf1infunc1] printresult1 deft2(): func2=[lambdax,i=i:x*iforiinrange(10)] result2=[f2(2)forf2infunc2] printresult2
上面是两个列表推导式,里面包含有lambda表达式。输出结果分别为:
[18, 18, 18, 18, 18, 18, 18, 18, 18, 18][0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
2. 为什么结果会不同
在上面的例子中,列表解析会生成一系列的函数对象。例如
deffunc(): pass
会产生一个名为func的函数对象。注意不同于func(),加上小括号以后,此时变为了调用函数对象。
函数对象只有在调用的时候才开始对内部的变量进行引用。在t1()方法中,对i来说, 当函数对它引用的时候, 它已经变为9, 所以10个函数都引用了i=9。
而对于t2()方法来说,lambda函数相当于变成接受两个参数了,所以返回了不一样的结果。
3. 另外的方式
deft3(): func3=(lambdax:x*iforiinrange(10)) result3=[f3(2)forf3infunc3] printresult3
上面的代码,输出的结果为:
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
看完上述内容,你们对列表推导式与生成器怎么在Python中使用有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注恰卡编程网行业资讯频道,感谢大家的支持。
推荐阅读
-
一文教你Python如何快速精准抓取网页数据
本文将使用requests和beautifulsoup这两个流行的库来实现。1.准备工作首先安装必要的库:pipinst...
-
使用Python实现IP地址和端口状态检测与监控
-
基于Python打造一个智能单词管理神器
-
Python实现微信自动锁定工具
-
使用Python创建一个功能完整的Windows风格计算器程序
python实现windows系统计算器程序(含高级功能)下面我将介绍如何使用python创建一个功能完整的windows风格计...
-
Python开发文字版随机事件游戏的项目实例
随机事件游戏是一种通过生成不可预测的事件来增强游戏体验的类型。在这类游戏中,玩家必须应对随机发生的情况,这些情况可能会影响他们的资...
-
使用Pandas实现Excel中的数据透视表的项目实践
引言在数据分析中,数据透视表是一种非常强大的工具,它可以帮助我们快速汇总、分析和可视化大量数据。虽然excel提供了内置的数据透...
-
Pandas利用主表更新子表指定列小技巧
一、前言工作的小技巧,利用pandas读取主表和子表,利用主表的指定列,更新子表的指定列。案例:主表:uidname0...
-
Pandas中统计汇总可视化函数plot()的使用
-
Python中tensorflow的argmax()函数的使用小结
在tensorflow中,argmax()函数是一个非常重要的操作,它用于返回给定张量(tensor)沿指定轴的最大值的索引。这个...
