如果包含在循环

时间:2018-03-15 13:55:19

标签: python loops dictionary

想知道循环移动时是否清除字典(如果包含在循环中)。

for x in list: 
  dict_1 = {} 
  do_some_stuff_here: 
    continue 

移动到列表中的下一个项目时是否清除了字典?

2 个答案:

答案 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只有一个条目。