2014-05-13 61 views
0

下面顯示的變量初始化的不同位置的分支是什麼?精神上一個慢夜的位:/雙循環變量初始化

for row in range(0,3): 
    for column in range(0,3): 
     block_set = set() 

for row in range(0,3): 
    block_set = set() 
    for column in range(0,3): 
+0

什麼是集的? – Dannnno

回答

0

當然會有差異。第一個版本爲內部循環的每次迭代創建一個新集,而第二個版本將爲外部循環的每個迭代創建一個集。換句話說:第二個版本將創建一個將在內部循環的所有迭代之間共享的集合,而第一個版本每次創建一個新集合,並且添加到該集合的所有數據都將丟失。我不能確定沒有看到其他代碼,但幾乎可以肯定的是,這兩個版本中的一個是錯誤的(這完全取決於你真正想做什麼。)

0
for row in range(0,3): 
    for column in range(0,3): 
     block_set = set() # block_set gets reset to an empty set on every iteration of the inner, 'for column' loop. 

for row in range(0,3): 
    block_set = set() # block_set will only be reset once you've finished iterating over the 'for column' loop below, and moved to the next step of the outer, 'for row' loop. 
    for column in range(0,3):