使用字典進行動態程式設計

已完成

在您的程式中,您想要執行各種計算,例如衛星總數。 此外,當您進入更進階的程式設計時,可能會發現您正在從檔案或資料庫載入此類型的資訊,而不是直接編碼至 Python。

為了協助支援這些案例,Python 可讓您將字典內的索引鍵和值視為清單。 您可以動態判斷索引鍵和值,並執行各種計算。

假設有一個存放每月降雨量的字典。 您可能擁有每個月的索引鍵及相關聯的降雨量。 您想要將總降雨量加總,但撰寫程式碼以使用每個個別索引鍵來執行此作業,可能比較繁瑣。

擷取所有索引鍵和值

keys() 方法會傳回包含所有索引鍵的清單物件。 您可以使用此方法,逐一查看字典中的所有項目。

想像一下,您擁有儲存過去三個月降雨量的字典。

rainfall = {
    'october': 3.5,
    'november': 4.2,
    'december': 2.1
}

假設您想要顯示所有降雨量的清單。 您可以輸入每個月的名稱,但這很繁瑣。


for key in rainfall.keys():
    print(f'{key}: {rainfall[key]}cm')
october: 3.5cm
november: 4.2cm
december: 2.1cm

注意

您仍然可以使用方括弧 ([ ]) 搭配一個變數名稱,而不是硬式編碼的字串常值。

判斷索引鍵是否存在於字典中

當您更新字典中的值時,如果索引鍵不存在,Python 將覆寫現有的值或建立新值。 如果您想要新增到值,而不是覆寫該值,您可以使用 in 來檢查索引鍵是否存在。 例如,如果您想要將值新增到 12 月,或者,如果值不存在時建立新值,您可以使用下列內容:

if 'december' in rainfall:
    rainfall['december'] = rainfall['december'] + 1
else:
    rainfall['december'] = 1

# Because december exists, the value will be 3.1

擷取所有值

keys() 類似,values() 會傳回字典中所有值的清單,而「不使用」其各自的索引鍵。 當您基於標記用途使用索引鍵時 (例如上述範例,其中的索引鍵為當月名稱),values() 會很實用。 您可以使用 values() 來判斷總降雨量:

total_rainfall = 0
for value in rainfall.values():
    total_rainfall = total_rainfall + value

print(f'There was {total_rainfall}cm in the last quarter.')
There was 10.8cm in the last quarter.