2015-07-04 57 views
0

我需要創建三個字典。我想使用for循環來做到這一點,但它並不是我想要的方式。這是我的代碼:正在創建for循環字典不工作

names=["lloyd", "alice", "tyler"] 

for name in names: 
    name = { 
     "name": [name], 
     "homework": [], 
     "quizzes": [], 
     "tests":[], 
     } 

的三本字典,而是存儲在變量name。我假設第二個name(在開始for循環的行之後)也將被存儲在names中的值替代,但是這不會發生。怎麼來的?我怎樣才能解決這個問題?

+3

'name'是一個單獨的參考列表中的一個字符串;設置它引用另一個對象(如字典)不會改變列表引用的內容。 –

+3

你爲什麼會這樣認爲?字符串與標識符不是**相同,儘管如果明確地這樣做,Python爲它們之間的轉換提供了各種選項。這樣做含蓄地會令人難以置信的令人沮喪。 – jonrsharpe

+0

@jonrsharpe,你真的嘗試閱讀我的文章的前兩個字嗎?另外,你想介紹一下更多的細節並幫助我嗎?我非常感謝這一點。 – Vincent

回答

1
names=["lloyd", "alice", "tyler"] 

name_dicts = [] 

for name in names: 
    name_dicts.append({ 
     "name": [name], 
     "homework": [], 
     "quizzes": [], 
     "tests":[], 
     }) 

現在你有一個包含所有名字的字典數組。

儘量避免使用相同的變量名稱不同的事情按照@johnsharpe(你應該讀他的鏈接 - 非常有用)