Python dict的取值
dict的初始化
dict就是一種{key:value}的資料型態,其中key必須為不可變的物件,例如可變長度的list就無法作為key值。
#宣告一個空的dict
dict_a = {}
#宣告一個有初始值的dict
dict_a = {'x':1, 'y':2, 'z':3}
dict_b = {'x':1, 'y':[1,2], 'z':[1,2,3]}
#如果使用tuple來作為key
dict_a = {('x','y','z'):1, 'y':2, 'z':3}
修改或讀取dict
取值
直接透過dict[Key]來取值
dict_a = {'x':1, 'y':2, 'z':3}
print(dict_a['x'])
>> 1
get()
透過get(),讀取一個特定Key值時,
- 如果找的到這個Key值,那就回傳該Key的Value
- 如果找不到這個Key值,
- 如果沒有指定預設回傳值,就回傳None
- 如果有指定預設回傳值,就回傳指定的回傳值
以下為這三種情況的範例。
dict_a = {'x':1, 'y':2, 'z':3}
print(dict_a.get('x', 2))
print(dict_a)
>> 1
>> {'x':1, 'y':2, 'z':3}
print(dict_a.get('m'))
print(dict_a)
>> None
>> {'x':1, 'y':2, 'z':3}
print(dict_a.get('m', 5))
print(dict_a)
>> 5
>> {'x':1, 'y':2, 'z':3}
setdefault()
透過setdefault(),讀取一個特定Key值時,同時會帶入預設的回傳值,這個預設的回傳值是在透過該Key值找不到資料時,才會回傳的Value。
- 如果找的到這個Key值,那就回傳該Key的Value
- 如果找不到這個Key值,就回傳指定的預設值。同時,會將這個{Key:Value}塞入dict中。
以下為這兩種情況的範例。
dict_a = {'x':1, 'y':2, 'z':3}
print(dict_a.setdefault('x',100))
print(dict_a)
>> 1
>> {'x':1, 'y':2, 'z':3}
print(dict_a.setdefault('w',100))
print(dict_a)
>> 100
>> {'x': 1, 'y': 2, 'z': 3, 'w': 100}