您好,欢迎来到伴沃教育。
搜索
您的当前位置:首页Python一些不为人知的黑魔法

Python一些不为人知的黑魔法

来源:伴沃教育

题目:

array = [1, 8, 15]
g = (x for x in array if array.count(x) > 0)
array = [2, 8, 22]

Output:

>>> print(list(g))
[8]

问题:

  • 为什么print 结果不是[1, 8, 15]呢??

解释:

在生成式表达式中,in 语句是在声明时进行评估的, 但是条件判断是运行时才进行操作。
所以在运行前,array 被分配给列表[1, 8, 15], 而运行时array被分配给列表[2, 8, 22]
两个不同时期列表中只有8是同时存在的,所以返回结果是8。

未完待续。。。

Copyright © 2019- bangwoyixia.com 版权所有 湘ICP备2023022004号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务