2017-06-26 31 views
1

我是新手編程和當前學習python。我在Python中嘗試使用字典時被卡住了。 我有一個關鍵的正常字典和值作爲空字符串:如何更新python中嵌套字典的值?

dict = {'Project_path':''}, 
     'Target_files':'', 
     'default_ws':''} 

我更新密鑰的這樣的值:

dict['project_path'] = 'Pass' 

但我想創建一個字典我不必使用長鍵;相反,我可以將這些鍵映射到數字,所以,如果我想更新的字典,我可以做這樣的:

dict = {1:{'Project_path':''}, 
     2:{'Target_files':''}, 
     3:{'default_ws':''}} 
dict['1'] = 'pass' 

應該爲'project_path''pass'

和更新值後更新的價值,我必須寫在一個文件中

有辦法做到這一點嗎?

回答

0

歡迎使用Python進行編程!這裏幾件事情:首先,使用dict作爲變量名不是一個好主意,因爲這是整個字典對象類的關鍵字。您可以使用像my_dict之類的東西,或類似的東西。

其次,當您製作按鍵編號,然後撥打dict['1'] = 'pass'時,會在您將整數1聲明爲關鍵字時在按鍵中查找字符串「1」。讓我解釋一下:

'1'是一個字符串

1是一個整數。

在蟒蛇這些是兩個非常不同的東西,不能混在一起。這就是爲什麼價值不會更新。如果你要說dict[1] = 'pass',那應該適合你,它應該更新值。請注意,雖然這將覆蓋作爲當前值的整個字典並將其替換爲'pass',但如果您只想更改字典密鑰,請使用

dict[1]['Project_path'] = 'pass'

這對我來說似乎是多餘的。究竟爲什麼你想(通過它或許循環和更改值)來映射在那裏整數這是一種目前還不清楚,但如果你只是想與它相關聯的整數,你可以只創建和字典的數組是這樣的:

my_array = [{"Project_path": ''}, {"Target_files":''}, {default_ws":''}] 

然後,您可以通過從0開始的索引訪問它們。my_array[0]{"Project_path":''}。再說一遍,你爲什麼想要將整數映射到這些字典還是不清楚的,所以它對我來說沒有意義,因爲這有點多餘。

最後寫入文件。這裏有很多網頁,因爲在閱讀和編寫文件時有很多選擇(如this one),但這裏是簡短的版本。

with open('your_filepath.txt', 'w') as file: #note this will overwrite the current file, see the page I linked. 
    file.write(my_array[0]) #or whatever you want to write to it. 

就這麼簡單,但就像我說的,看看該網頁,看看所有的選項,並選擇最適合你的一個。希望這是有幫助的,並可以讓你開始。

+0

謝謝SH7890這有助於很多,關於映射整數只是我想重用其他類中的字典和使用循環更新密鑰的值........所以只是爲了避免錯別字和寫作長鍵有更好的數字,以便我可以輕鬆地更新值,只是一個更多的問題,所以在你的字典數組後,現在如果我想更新project_path ='Pass'的值,我可以通過索引來做到這一點,我是嗎? – PythonFreek

+0

'my_array [0] [「Project_path」] =「Pass」'會改變數值。 – SH7890

+0

我知道你是初學者,而且你正朝着正確的方向前進,但是Python有一些高級功能可以用來循環查看字典,並且一旦習慣了循環和數據結構,你應該檢查它們。祝你好運! – SH7890