gpt4 book ai didi

python - 用自身的生成器替换变量

转载 作者:太空宇宙 更新时间:2023-11-04 03:17:20 26 4
gpt4 key购买 nike

也许这是一个愚蠢的问题,但我想知道为什么这真的有效:

a = {'a': 1, 'b': 2}
a = a.items() # or .iteritems() on python2 # or even a = (i for i in a)

b = [i for i in a]
b
[('b', 2), ('a', 1)]

为什么我可以用生成器替换变量?这不会删除原始字典的实际内容吗?为什么它仍然知道该变量中的内容?

因为努力

a['a'] # before creating b 

导致 TypeError 因为

'dict_items' object is not subscriptable

最佳答案

那是因为 a 在表达式被计算之前不会被赋值。即,a.items() 被评估为生成器,然后将 a 赋值给它。生成器并没有因为 a 不再引用字典而改变。字典仍然存在;它只是不再被称为 a

关于python - 用自身的生成器替换变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35783504/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com