我正在學習 Python 速成課程,在第 8 章中,作者給出了以下代碼作為示例,用于使用用戶輸入填充字典。我對他將回應存盤到字典中的步驟感到困惑,因為在我看來,他似乎只保存了一個“回應”,它是鍵“名稱”下的“回應”字典中的不可變資料. 我錯過了如何將名稱輸入和回應輸入放入字典中。
這對我來說似乎沒有意義,但這就是我迄今為止對這段旅程的喜愛,在看似無意義的事情中找到意義。謝謝你幫我揭開這個世界的神秘面紗。
responses = {}
# Set a flag to indicate that polling is active.
polling_active = True
while polling_active:
#Prompt for the person's name and response.
name = input("\nWhat is your name? ")
response = input("Which mountain would you like to climb someday? ")
#Store the response in the dictionary:
responses[name] = response
#Find out if anyone else is going to take the poll.
repeat = input("Would you like to let another person respond? (yes/no) ")
if repeat == 'no':
polling_active = False
#Polling is complete. Show the results.
print("\n--- Poll Results ---")
for name, response in responses.items():
print(name " would like to climb " response ".")
uj5u.com熱心網友回復:
字典的特點是您可以像這樣更改鍵的值dictionary[key] = value
:如果密鑰不存在,它將簡單地創建一個新密鑰。您不需要任何append
用于串列的函式。您撰寫的行responses[name] = response
有效,因為它停留在 while 回圈中。回圈再次運行后,它會詢問另一個輸入并將舊的替換name
為新的name
,舊response
的替換為新的response
。總之,如果名稱不在字典中,則每次回圈運行時都會添加名稱和回應。response
如果名稱在那里,那么如果它與舊名稱不同,它將簡單地更改其值。
這回答了你的問題了嗎?
uj5u.com熱心網友回復:
在最基本的解釋中,字典將任意值與任意鍵相關聯。因此,作者實際所做的是將用戶的回應與他們的姓名相關聯。作者通過使用名稱作為鍵和回應作為值來做到這一點。像這樣使用字典是相當普遍的。
如果要檢索陣列中的值,則必須知道它的鍵。但是,您可以使用 檢索所有鍵值對dictionary.items()
。這樣,作者可以獲得這兩個相關的資料(名稱和回應)。
如果這回答了您的問題,您可以將其標記為正確。如果您覺得這個答案需要更多解釋,您也可以發表評論。
uj5u.com熱心網友回復:
name
和response
是用輸入資料填充的變數名稱,比如說'John'
和'Kalimanjaro'
。
現在,'John'
并且'Kalimanjaro'
確實是不可變的,但這并不意味著您不能替換存盤在下一個回圈中name
和response
下一個回圈中的值。如果需要,您可以分配一個新值,也可能是不可變的name
。
一種可能的混淆來源可能是您開始使用諸如 之類的陳述句來學習字典responses['John'] = 'Kalimanjaro'
,其中鍵和值都是字串。現在你正在做(和responses[name] = response
周圍沒有引號)。因此,您創建了一個名為 what was stored in 的 key和一個 value with what is stored in 。name
response
name
response
如果在下一次迭代中 的值name
被替換為 ,比如說'Maria'
并response
變成'Andes'
,那么新的responses[name] = response
將等價于responses['Maria'] = 'Andes'
。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/504906.html