Python 如果包含在循环中,是否清除字典
想知道循环继续时是否清除了循环中包含的词典Python 如果包含在循环中,是否清除字典,python,loops,dictionary,Python,Loops,Dictionary,想知道循环继续时是否清除了循环中包含的词典 for x in list: dict_1 = {} do_some_stuff_here: continue 移动到列表中的下一项时是否清除词典 你为什么不检查一下呢 In [1]: for i in range(5): ...: my_dict = {} ...: my_dict[i] = i+1 ...: In [2]: my_dict Out[2]: {4: 5} 如果希
for x in list:
dict_1 = {}
do_some_stuff_here:
continue
移动到列表中的下一项时是否清除词典 你为什么不检查一下呢
In [1]: for i in range(5):
...: my_dict = {}
...: my_dict[i] = i+1
...:
In [2]: my_dict
Out[2]: {4: 5}
如果希望词典保留值,则必须提前声明
In [5]: my_dict = {}
In [6]: for i in range(5):
...: my_dict[i] = i+5
...:
In [7]: my_dict
Out[7]: {0: 5, 1: 6, 2: 7, 3: 8, 4: 9}
是的,当循环完成时,您在循环中初始化的字典将被清除 如果不希望字典不断被清除,请在循环外部初始化字典
dict_1 = {}
for x in list:
do_some_stuff_here_with_dict_1:
continue
以下是两者之间的比较:
outside = {} # Outside of loop
for x in range(5):
inside = {} # Inside of loop
outside[x] = 0
inside[x] = 0
print(outside)
print(inside)
输出:
{0: 0, 1: 0, 2: 0, 3: 0, 4: 0}
{4: 0}
实际上,每次循环运行时,您都将字典设置回
{}
。因此,在程序完成后,您的词典
只有一个条目。它不会被“清除”。循环的每一圈都会创建一个新的(空)字典。在循环的每一次迭代开始时,dict_1={}
将被执行,从而创建一个空字典。循环结束后,dict_1
仍然存在,并且在最后一次循环迭代中添加到其中的所有数据都将被清除,而且会被空数据覆盖。