Python的51个“秘密”被曝光,GitHub获2万星
然后将字典 some_dict 键 i (刚刚分配的) 的值设为该字符。本例中循环的展开可以简化为:
执行时机差异 1.
2.
说明: 在生成器表达式中, in 子句在声明时执行, 而条件子句则是在运行时执行。 所以在运行前, array 已经被重新赋值为 [2, 8, 22], 因此对于之前的 1, 8 和 15, 只有 count(8) 的结果是大于 0 的, 所以生成器只会生成 8。 第二部分中 g1 和 g2 的输出差异则是由于变量 array_1 和 array_2 被重新赋值的方式导致的。 在第一种情况下, array_1 被绑定到新对象 [1,2,3,4,5], 因为 in 子句是在声明时被执行的,所以它仍然引用旧对象 [1,2,3,4](并没有被销毁)。 在第二种情况下, 对 array_2 的切片赋值将相同的旧对象 [1,2,3,4] 原地更新为 [1,2,3,4,5]。 因此 g2 和 array_2 仍然引用同一个对象(这个对象现在已经更新为 [1,2,3,4,5])。 本文内容来自中文版项目,项目全文2万多字,以及海量代码。 因为篇幅原因,小七就只为大家展示这6个案例了,更多案例大家可以在项目中查看。 项目作者:Satwik Kansal 英文版项目名称:wtfpython 中文版作者:慕晨 中文项目名称:wtfpython-cn 因为平台规定,无法放链接。大家可以自行搜索。 【编辑推荐】
点赞 0 (编辑:常州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |