PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
Python
[问题] lambda 在循环内设定的问题
楼主:
pshuang
(中山先生忠实信徒-我爱萝)
2022-03-28 11:22:12
Os环境:Win7
Py版本: 3.8.10
lambda关键字,如果在循环内设定,又没带参数,
感觉结果想不通。想请问原因。
code如下:
#
作者:
DaOppaiLoli
(大欧派萝莉)
2022-03-28 12:54:00
这应该是 Scope 的关系
https://www.ideone.com/txytbg
就算写成一般 Function 也会有一样的情况,i 对 lambda 来说是 Global 但 x 对 lambda 来说是 Local
作者:
ck574b027
(荒围!定厝!贼!妹!)
2022-03-28 23:37:00
python是用reference(简称位置)在运作的,你说的“当下的i”只是i的位置。又因python改变位置需要透过assignment,而i在for并没有发生这种事,只是在他的位置更新,所以全部lambda都拿着同个i。你可以不要用list comprehension,把第一个例子的[]改成(),结果就会跟第二个一样,因为generator等于在for才建立lambda
作者:
poototo
(poototo)
2022-03-29 00:19:00
generator也是闭包把local的i让lambda记住才yield出去[]的例子类似js循环的var会共用污染也就是ck大所说的,都去同一addr取值
继续阅读
[问题] Windows Event Log
shanksponpon
[问题] keyboard record
z97801256
[问题] 抓取试算表图片网址失败
qpalzm963
[问题] 关于line bot存取csv表格及筛选资料
laya1017
[问题] 请问 map 指定的 function 会不会自动执行?
pshuang
[问题] 关于多重继承与super的呼叫问题
pshuang
[问题] anaconda虚拟环境套件安装位置
gene50814
[问题] 用for循环找众数
i329
[问题] Rhino script
corn5465
[问题] 爬虫 卷商分点资料
unknown
Links
booklink
Contact Us: admin [ a t ] ucptt.com