实现目标的最小变化是
vars()
具有
vars().copy()
.
变量()
迭代for循环时发生更改。
a = vars()
创建别名
变量()
. 自从
a
是的别名
变量()
,
一
会改变如果
变量()
变化。当您循环使用的字典发生更改时,python将抛出异常。副本
变量()
是用
vars().copy()
在程序执行时不会更改。
zza = [1,1,1]
zzb = [2,2,2]
zzc = [3,3,3]
final = []
a = vars().copy()
for i in a:
if 'zz' in i:
final.append(a[i])
证明这一点
变量()
当程序循环通过
for
循环,放置
print(vars())
在里面
对于
循环并注意
变量()
每次迭代都不同。
有关变量赋值在python中如何工作的更多信息,请阅读
https://docs.python.org/3.7/library/copy.html
. 要点是
a = b
不创建的副本
b
. 相反
一
和
乙
是同一对象的名称(或别名)。Python使用现有对象有意义的一个原因是,创建对象的副本使用更多的内存和处理时间。