一、字典取值:可以通过字典的键来获取其对应的值:
population = {"广东":111690000, "山东":100058300, "河南":95591300, "四川":95591300, "江苏":80293000} print(population["四川"]) # 输出:95591300
(1)字典无效键:当取字典键值时,如果键并不存在于字典中,该键无效,计算机会返回错误。
my_dict = {"a":1, "b":2, "c":3, "d":4} print(my_dict["e"]) # KeyError: 'e'
(2)try/except 取值:如果字典中没有相应的键,还可以用try/except的方法来捕获 KeyError 的出现。
my_dict = {"a":1, "b":2, "c":3, "d":4} try: print(my_dict["e"]) except KeyError: print("没有这个键") # 输出:没有这个键
二、.get() Python的字典有 .get() 方法,它根据键来取字典中相应的值。如果键不存在于字典中,.get() 默认返回 None。
zoo = {'大象': 3, '金丝猴': 4, '羊驼': 2, '海獭': 2, '大熊猫': 3, '长颈鹿': 3, '狼': 8} print(zoo.get('大象')) # 输出: 3 print(zoo.get('海豚')) # 输出: None
当键不存在于字典中时,我们也可以手动设置返回值:
zoo = {'大象': 3, '金丝猴': 4, '羊驼': 2, '海獭': 2, '大熊猫': 3, '长颈鹿': 3, '狼': 8} print(zoo.get('海豚',"没有海豚")) # 输出:没有海豚
三、删除字典键:可以用 .pop() 方法来删除字典中的键及其值。
zoo = {'大象': 3, '金丝猴': 4, '羊驼': 2, '海獭': 2, '大熊猫': 3, '长颈鹿': 3, '狼': 8} print(zoo.pop("大象")) # 输出:3 print(zoo) # 输出:{'金丝猴': 4, '羊驼': 2, '海獭': 2, '大熊猫': 3, '长颈鹿': 3, '狼': 8}
示例中,zoo 中的键"大象" 及其值 3 被删除。如果需要删除的键不在字典之中,可以在 .pop() 方法中加上对应的参数,当键不存在时,.pop() 返回该参数,具体见:
zoo = {'大象': 3, '金丝猴': 4, '羊驼': 2, '海獭': 2, '大熊猫': 3, '长颈鹿': 3, '狼': 8} print(zoo.pop("海豚","没有此动物")) # 输出:没有此动物 print(zoo) # 输出:{'大象': 3, '金丝猴': 4, '羊驼': 2, '海獭': 2, '大熊猫': 3, '长颈鹿': 3, '狼': 8}
四、获取字典所有的键:我们可以用两种方法获得字典中所有的键。第一种方法:list(目标字典):
zoo = {'大象': 3, '金丝猴': 4, '羊驼': 2, '海獭': 2, '大熊猫': 3, '长颈鹿': 3, '狼': 8} print(list(zoo)) # ['大象', '金丝猴', '羊驼', '海獭', '大熊猫', '长颈鹿', '狼']
第二种方法,我们还可以用 .keys() 方法来获得字典中的键:
zoo = {'大象': 3, '金丝猴': 4, '羊驼': 2, '海獭': 2, '大熊猫': 3, '长颈鹿': 3, '狼': 8}
for animal in zoo.keys():
print(animal)
# 输出:
大象
金丝猴
羊驼
海獭
大熊猫
长颈鹿
狼
五、获得字典所有的值:可以用 .values() 方法获得字典中所有的值:
zoo = {'大象': 3, '金丝猴': 4, '羊驼': 2, '海獭': 2, '大熊猫': 3, '长颈鹿': 3, '狼': 8} for num in zoo.values(): print(num) # 输出: 3 4 2 2 3 3 8
六、获得字典中所有的键值对:可以用 .items() 获得 字典中的所有键值对
oo = {'大象': 3, '金丝猴': 4, '羊驼': 2, '海獭': 2, '大熊猫': 3, '长颈鹿': 3, '狼': 8}
for animal, number in zoo.items():
print(animal + "的数量为:" + str(number))
# 输出:
大象的数量为:3
金丝猴的数量为:4
羊驼的数量为:2
海獭的数量为:2
大熊猫的数量为:3
长颈鹿的数量为:3
狼的数量为:8