使用字典
在Python中,字典是一系列键-值对,键和值之间用冒号分割,键值对之间用逗号分隔。字典中的最后一对键值对后面可以加逗号也可以不加,推荐加上避免新增加键值对时忘记此处的逗号。可将任何Python对象用作字典中的值。
访问字典中的值
要获得与键相关联的值,可依次指定字典名和放在方括号内的键。
apple = {'color':'red','size':'big'}
print(apple['color'])
print(apple['size'])
red
big
添加键值对
字典是一种动态结构,可随时在其中添加键值对。但要注意的是Python不关心键值对的添加顺序,只关心键和值之间的关联关系。
apple = {'color':'red','size':'big'}
print(apple)
apple['taste'] = 'good'
print(apple)
{'color': 'red', 'size': 'big'}
{'color': 'red', 'size': 'big', 'taste': 'good'}
在最开始不知道字典内容的时候可以先创建一个空字典。
apple = {}
修改字典中的值
apple = {'color':'red','size':'big','taste':'good'}
apple['taste'] = 'bad'
print(apple)
{'color': 'red', 'size': 'big', 'taste': 'bad'}
删除键值对
可以使用del语句将键值对彻底删除。使用del语句时,必须指定字典名和要删除的键。
del apple['taste']
print(apple)
{'color': 'red', 'size': 'big'}
由类似对象组成字典
字典可以存储一个对象的多种属性,也可以存储多个对象的同一属性。
favorite_languages = {
'Mike':'C',
'John':'Java',
'William':'Python',
'Tang':'Python',
}
print(favorite_languages)
{'Mike': 'C', 'John': 'Java', 'William': 'Python', 'Tang': 'Python'}
遍历字典
有多种遍历字典的方式:遍历字典的键、值或键值对。
遍历所有键值对
apple = {'color':'red','size':'big'}
for key,value in apple.items():
print("key:" + key)
print("Value:" + value)
key:color
Value:red
key:size
Value:big
for语句中的方法items()返回一个键值对列表。for循环依次将每个键值对存储到指定的两个变量中。
遍历字典中的所有键
favorite_languages = {
'Mike':'C',
'John':'Java',
'William':'Python',
'Tang':'Python',
}
for name in favorite_languages.keys():
print(name)
Mike
John
William
Tang
方法keys()返回一个列表,其中包含字典中的所有键。所以该方法不只用于遍历,譬如下面判断元素是否在字典的键中。同时遍历字典时会默认遍历所有的键,因此如果将上面的代码中for name in favorite_languages.keys():
替换为for name in favorite_languages:
,输出将不变。
if 'Tang' in favorite_languages.keys():
print(True)
True
遍历字典中所有的值
如果感兴趣的是字典中的值,那么可以使用方法values(),它返回一个值的列表。
favorite_languages = {
'Mike':'C',
'John':'Java',
'William':'Python',
'Tang':'Python',
}
for language in favorite_languages.values():
print(language)
C
Java
Python
Python
这种做法提取字典中所有的值,不考虑是否重复。如果想要剔除掉重复的值,那么使用set()函数将列表转换为集合。
for language in set(favorite_languages.values()):
print(language)
C
Java
Python
嵌套
有时需要将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套。
字典列表
我们经常需要在列表中包含大量的字典,其中每个字典代表一个特定对象,字典中包含了这个对象的众多属性。
apple = {'name':'apple','color':'red','size':'middle'}
banana = {'name':'banana','color':'yellow','size':'middle'}
watermelon = {'name':'watermelon','color':'green','size':'big'}
fruits =[apple,banana,watermelon]
print(fruits)
[{'name': 'apple', 'color': 'red', 'size': 'middle'}, {'name': 'banana', 'color': 'yellow', 'size': 'middle'}, {'name': 'watermelon', 'color': 'green', 'size': 'big'}]
在字典中存储列表
每当需要在字典中讲一个键关联到多个值时,都可以在字典中嵌套一个列表。
favorite_languages = {
'Mike':['C','Java'],
'John':['C','Python'],
}
print(favorite_languages)
{'Mike': ['C', 'Java'], 'John': ['C', 'Python']}
注意列表和字典的嵌套层级不应太多。