Learn Python 3:dict

作者: SheHuan | 来源:发表于2017-09-22 09:12 被阅读125次

    一、什么是字典

    Python中,字典(dict),是一系列放在{}的键值对(key-value)。可以使用键来访问对应的值,与键对应的值可以是数字、字符串、列表、字典,字典具有极快的查找速度。下边是一个与手机信息相关的dict:

    {'os': 'Android', 'soc': 'Qualcomm', 'screen': 'Samsung'}
    

    除了直接通过{}来创建字典,还可以通过如下方式:

    d = dict(os= 'Android', soc='Qualcomm', screen='Samsung')
    

    使用可迭代对象(列表、元组等)也可以创建字典:

    >>>d=dict((['x', 1], ['y', 2], ['z', 3]))
    >>>d
    {'x': 1, 'y': 2, 'z': 3}
    >>>d=dict(zip(('x', 'y', 'z'), (1, 2, 3)))
    >>>d
    {'x': 1, 'y': 2, 'z': 3}
    

    还可以使用fromkeys()内建方法创建默认字典:

    >>>{}.fromkeys(('x', 'y', 'z'), -1)
    {'x': -1, 'y': -1, 'z': -1}
    

    二、字典操作

    1、访问字典中的值
    >>>m = {'os': 'Android', 'soc': 'Qualcomm', 'screen': 'Samsung'}
    # 通过key访问value,如果key不存在则报错
    >>>m['os']
    'Android'
    # 为了避免key不存在报错问题,可以使用get方法,如果key不存在则返回None,或指定返回值
    >>>m.get('soc')
    'Qualcomm'
    # key不存在时,指定返回值
    >>>m.get('xxx',-1)
    -1
    # 除了get方法外,还可以先通过in判断key是否存在
    >>>'xxx' in m
    False
    >>>'os' in m 
    True
    
    2、添加 key-value
    >>>m = {'os': 'Android', 'soc': 'Qualcomm', 'screen': 'Samsung'}
    >>>m['camera'] = 'Sony'
    >>>m
    {'os': 'Android', 'soc': 'Qualcomm', 'screen': 'Samsung', 'camera': 'Sony'}
    
    3、删除 key-value
    >>>m = {'os': 'Android', 'soc': 'Qualcomm', 'screen': 'Samsung'}
    >>>del m['os']
    >>>m
    {'soc': 'Qualcomm', 'screen': 'Samsung'}
    >>>m.pop('soc')
    'Qualcomm'
    >>>m
    {'screen': 'Samsung'}
    # 删除所有键值对
    >>>m.clear()
    >>>m
    {}
    
    4、修改字典中的值
    >>>m = {'os': 'Android', 'soc': 'Qualcomm', 'screen': 'Samsung'}
    >>>m['screen'] = 'BOE'
    >>>m
    {'os': 'Android', 'soc': 'Qualcomm', 'screen': 'BOE'}
    
    5、遍历字典
    5.1、遍历key-value
    >>>m = {'os': 'Android', 'soc': 'Qualcomm', 'screen': 'Samsung'}
    # m.items()返回一个列表,列表的每一个元素是一个包含key、value的tuple
    >>>for key, value in m.items():
    ···    print(key + ' -> ' + value)
    ···
    os -> Android
    soc -> Qualcomm
    screen -> Samsung
    
    5.2、遍历key
    >>>m = {'os': 'Android', 'soc': 'Qualcomm', 'screen': 'Samsung'}
    >>>for key in m.keys():
    ···    print(key)
    ···
    os
    soc
    screen
    
    5.3、遍历value
    >>>m = {'os': 'Android', 'soc': 'Qualcomm', 'screen': 'Samsung'}
    >>>for value in m.values():
    ···    print(value)
    ···
    Android
    Qualcomm
    Samsung
    
    6、字典的长度(键值对数量)
    >>>d = {'x': 1, 'y': 2, 'z': 3}
    >>>len(d)
    3
    
    7、update
    # 将一个字典的内容添加到另一个字典
    >>>d = {'x': 1, 'y': 2, 'z': 3}
    >>>d1 = {'m': 4, 'n': 5}
    >>>d.update(d1)
    >>>d
    {'x': 1, 'y': 2, 'z': 3, 'm': 4, 'n': 5}
    
    7、注意事项:
    • dict 查找和插入的速度,不会随key的增加而变慢
    • 和list相比,dict 会占用更多的内存空间
    • dict 是用空间来换取时间的一种方法
    • dict 中的key必须是不可变对象, 不能重复,Python中,字符串、整数等都是不可变的

    相关文章

      网友评论

        本文标题:Learn Python 3:dict

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