字典dictionary

2017-08-11  本文已影响0人  进步小小青年

字典(dictionary)

在一对一的查找方面,字典比列表更方便

countries and captials 是两个列表,记录了欧洲的一些国家及其对应的首都

countries = ['spain', 'france', 'germany', 'italy'] #国家
capitals = ['madrid', 'paris', 'berlin', 'rome'] #首都

打印德国首都

ind_ger = countries.index("germany") # 先获取德国对应的数字索引
print(capitals[ind_ger]) #索引需用到方括弧

用字典可以更好的实现这个功能

定义字典europe

europe = {'spain':'madrid', 'france':'paris','germany':'berlin','italy':'rome'}
print(europe['germany'])

获取字典的key和values

用keys()方法获取字典的索引

In [1]: europe.keys()
Out[1]: dict_keys(['spain', 'france', 'germany', 'italy'])

用values()方法获取字典的值

In[2]:europe.values()
Out[2]:dict_values(['madrid', 'paris', 'berlin', 'rome'])

用items()方法获取 key-value 键值对

In[3]:europe.items() # 每个元素是元组
Out[3]:dict_items([('spain', 'madrid'), ('france', 'paris'), ('germany', 'berlin'), ('italy', 'rome')])

通过键 key 获取 value 值

输出france对应的值

europe['france']#用的是方括弧

我们也可以使用 get() 方法来获取key对应的值

europe.get('france')#用的是圆括弧

检查某个索引是否在字典里

'britain' in europe

当key不在字典中时,使用 [ ] 将出错

europe['britain']

KeyError Traceback (most recent call last)
<ipython-input-16-df76e5bbdd8d> in <module>()
1 # 当key不在字典中时,使用 [ ] 将出错
----> 2 europe['britain']

KeyError: 'britain

如果key不在字典里,get方法默认返回None

europe.get('britain')

也可以自定义返回值,如果key不在字典里,返回‘Unknown’

europe.get('britain', 'Unknown')

字典的增删改

增加新的键-值对

europe['britain'] = 'london'
europe

注意这里的输出顺序和我们输入的顺序不一致,也再一次说明了字典是无序的

{'britain': 'london',
'france': 'paris',
'germany': 'berlin',
'italy': 'rome',
'spain': 'madrid'}

字典的值是可修改的

europe['britain'] = 'London'#把london首字母大写
print(europe)
{'spain': 'madrid', 'france': 'paris', 'germany': 'berlin', 'italy': 'rome', 'britain': 'London'}

删除某个键-值对

del(europe['britain'])
print(europe)
{'spain': 'madrid', 'france': 'paris', 'germany': 'berlin', 'italy': 'rome'}

作业:

字典的值可以是字典本身, 以提供更多信息,例如:

europe = { 'spain': { 'capital':'madrid', 'population':46.77 },
'france': { 'capital':'paris', 'population':66.03 },
'germany': { 'capital':'berlin', 'population':80.62 },
'norway': { 'capital':'oslo', 'population':5.084 } }

1 打印法国首都

2 加入意大利(italy)的首都(roma)和人口(population 59.83)

1.europe.get('france').get('capital')
europe['france']['capital']

2.europe['italy']={'capital': 'rome', 'population': 59.93}
europe

上一篇下一篇

猜你喜欢

热点阅读