想知道循环移动时是否清除字典(如果包含在循环中)。
for x in list:
dict_1 = {}
do_some_stuff_here:
continue
移动到列表中的下一个项目时是否清除了字典?
答案 0 :(得分:3)
你为什么不检查它?
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}
答案 1 :(得分:0)
是的,在循环结束时,您在循环内初始化的字典将被清除。
如果您不希望不断清除字典,请在循环外部初始化字典。
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}
基本上,每次循环运行时,您都要将字典设置回{}
。因此,在程序完成后,您的dictionary
只有一个条目。