我有這樣的代碼爲Python:如何通過兩個函數根據需要多次編輯字典?
def additems():
items = {}
add = input("What would you like to add?")
value = input("What value would you like to assign?")
items[add] = value
return items
def resume():
decision = input("would you like to continue?")
if decision == "Y":
main()
else:
print("Exiting...")
def main():
items = additems()
print(items)
resume()
main()
的目標是能夠爲我想編輯「項目」多次,而總是返回更新的字典回主。但是,就目前而言,我只能在函數「additems」內編輯字典,然後在「main」運行時重置字典。我不想在main運行時重置字典,我總是希望它打印更新的「items」字典。所以,而不是:
「你想補充什麼?」 「 - G 」您希望分配什麼值? 「 - 3 」{'G':'3'}「 」你想繼續嗎?「 - Y 「你想添加什麼?」 「 - J 」您希望分配什麼值? 「 - 4 」{'J':'4'}「 :
「你想添加什麼?」 「 - G 」您希望分配什麼值? 「 - 3 」{'G':'3'}「 」你想繼續嗎?「 - Y 「你想添加什麼?」 「 - J 」您希望分配什麼值? - 4 「{'G':'3','J':'4'}」(這兩個都是打印的)
...並且只要我提供輸入的Y,這意味着我能夠繼續。
如果你還沒有猜到,我對Stack和Python都很陌生,但是我會很感激。因此,當我的意思是幫助時,我的意思是幫助那些剛接觸Python和編程的人,而不是幫助那些有經驗的人。只要回答,就好像你正在跟一個5歲的孩子說話一樣,並節省我們所有的麻煩。
讓'items'成爲一個全球性的(如@AChampion說的'blah!'),然後從'additems'中刪除定義和'return',然後從'main'中調用'additems'而不是指定 –
因爲您正在遞歸在調用堆棧中,您需要將dict與它一起傳遞或創建一個全局字典(不建議,如果可以避免它 - 並且可以避免它!)。或者,反覆實施。 – AChampion
感謝@Nick A爲您提供的迅速建議!我從來沒有想過要讓字典成爲全局的,而且我已經這樣做了,並且它可以工作(:D),但理想情況下,我將它存儲在某個函數中而不是替代函數中。因此,我的下一個問題當然是:我如何去實現這個目標?最好以我無能的心理能夠理解的方式回答。 –