5、Dict

作者: 代码充电宝 | 来源:发表于2019-04-26 08:56 被阅读7次
    (1)dict键值对
    • 花括号 {} 表示这是一个dict,然后按照 key: value, 写出来即可。最后一个 key: value 的逗号可以省略
    d = {
        'Adam': 95,
        'Lisa': 85,
        'Bart': 59
    }
    len(d)  #len()可以计算任何集合的大小
    
    • key 的元素必须不可变
      • Python的基本类型如字符串、整数、浮点数、tuple都是不可变的,都可以作为 key
      • list是可变的,就不能作为 key
    {
        '123': [1, 2, 3], # key 是 str,value是list
        123: '123',  # key 是 int,value 是 str
        ('a', 'b'): True  # key 是 tuple,并且tuple的每个元素都是不可变对象,value是 boolean
    }
    
    • dict内部是无序的,不能用dict存储有序的集合
    • key不能重复,重复会被覆盖
    d = {
        'Adam': 85,
        'Adam': 95,
        'Bart': 59
    }
    print(d)  # {'Adam': 95, 'Bart': 59}
    
    (2)访问dict
    • 简单地使用 d[key] 的形式来查找对应的 value,这和 list 很像,不同之处是,list 必须使用索引返回对应的元素,而dict使用key:
    d = {
        'Adam': 95,
        'Lisa': 85,
        'Bart': 59
    }
    >>> print d['Adam']
    95
    >>> print d['Paul']
    Traceback (most recent call last):
      File "index.py", line 11, in <module>
        print d['Paul']
    KeyError: 'Paul'
    
    • 避免keyError
      • 先判断key是否存在
      • 使用dict本身提供的一个 get 方法,在Key不存在的时候,返回None
    if 'Paul' in d:
        print d['Paul']
    >>> print d.get('Bart')
    59
    >>> print d.get('Paul')
    None
    
    (3)dict和list区别
    • dict特点(空间换时间)
      • 查找和插入的速度极快,不会随着key的增加而变慢
      • 需要占用大量的内存,内存浪费多。
    • list特点
      • 查找和插入的时间随着元素的增加而增加
      • 占用空间小,浪费内存很少
    (4)更新dict
    • 如果 key 已经存在,则赋值会用新的 value 替换掉原来的 value
    d = {
        'Adam': 95,
        'Lisa': 85,
        'Bart': 59
    }
    >>> d['Paul'] = 72
    >>> print d
    {'Lisa': 85, 'Paul': 72, 'Adam': 95, 'Bart': 59}
    >>> d['Bart'] = 60
    >>> print d
    {'Lisa': 85, 'Paul': 72, 'Adam': 95, 'Bart': 60}
    
    (5)遍历dict
    • 遍历key
    d= {
        'Adam': 95,
        'Lisa': 85,
        'Bart': 59
    }
    for key in d:
        print key + ':', d[key]
    

    相关文章

      网友评论

        本文标题:5、Dict

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