美文网首页
字典dictionary

字典dictionary

作者: 进步小小青年 | 来源:发表于2017-08-11 10:35 被阅读0次

    字典(dictionary)

    • 字典可看作是键(key)与值(value)之间的一系列一一对应关系。
    • 字典和列表相似,但是列表由整数作为索引,字典由key作为索引。
    • 字典中的key是没有固定顺序的,列表索引为0、1、2……有顺序。
    • 列表和字典都可以通过 [ ] 进行选择,更新,和删除
    • 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:
      d = {key1 : value1, key2 : value2 }
    • 键必须是唯一的,但值则不必。
    • 值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
    • 字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。
    • 两个重要的点需要记住:
      1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住
      2)键必须不可变,所以可以用数,字符串或元组充当,所以用列表就不行

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

    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

    相关文章

      网友评论

          本文标题:字典dictionary

          本文链接:https://www.haomeiwen.com/subject/zsdlrxtx.html