美文网首页
python中的字典

python中的字典

作者: iDevOps | 来源:发表于2019-08-26 22:39 被阅读0次

    通过编号来访问各个值时, 列表很有用。
    我们这里介绍一种可通过名称来访问各个值的数据结构, 这种数据结构成为字典。
    1.字典的值不按顺序排列, 而是存在健下,
    2.健可以是数字, 字符串或元祖

    创建字典
    persons = {'zhansan': 11, 'lisi': 12}
    
    字典的基本操作
    • 存取
    dict[k] = v
    dict[k]
    
    del dict[k]
    
    • 是否包含
    k in dict
    
    • 长度
    len(dict)
    
    • 清空
    dict.clear()
    
    • copy
    person1 = {'name': 'lisi', 'hobby': ['lanqiu', 'zuqiu', 'paiqiu']}
    person2 = person1.copy()
    print(person1)  # {'hobby': ['lanqiu', 'zuqiu', 'paiqiu'], 'name': 'lisi'}
    print(person2)  # {'hobby': ['lanqiu', 'zuqiu', 'paiqiu'], 'name': 'lisi'}
    person2['name'] = 'zhangsan'
    person2['hobby'].remove('zuqiu')
    print(person1)  # {'hobby': ['lanqiu', 'paiqiu'], 'name': 'lisi'}
    print(person2)  # {'hobby': ['lanqiu', 'paiqiu'], 'name': 'zhangsan'}
    

    修改person2的hobby, person1也被改变了, 所以这种拷贝是浅拷贝
    为了避免这种问题, 可以使用深拷贝, deepcopy

    from copy import deepcopy
    person1 = {'name': 'lisi', 'hobby': ['lanqiu', 'zuqiu', 'paiqiu']}
    person2 = deepcopy(person1)
    print(person1)  # {'hobby': ['lanqiu', 'zuqiu', 'paiqiu'], 'name': 'lisi'}
    print(person2)  # {'hobby': ['lanqiu', 'zuqiu', 'paiqiu'], 'name': 'lisi'}
    person2['name'] = 'zhangsan'
    person2['hobby'].remove('zuqiu')
    print(person1)  # {'hobby': ['lanqiu', 'zuqiu', 'paiqiu'], 'name': 'lisi'}
    print(person2)  # {'hobby': ['lanqiu', 'paiqiu'], 'name': 'zhangsan'}
    
    • fromkeys
    d = {}.fromkeys(['name', 'age'])
    print(d)  # {'age': None, 'name': None}
    
    • get
      如果访问字典没有的健, 将发生错误, 可以使用get避免报错
    d.get('name')  # name不存在, 会返回None
    d.get('name', 'lisi')  # 也可以返回指定的值
    
    • items, keys和values
    person = {'name': 'lisi', 'age': 11}
    print(person.items())  # [('age', 11), ('name', 'lisi')]
    print(person.keys())  # ['age', 'name']
    print(person.values())  # [11, 'lisi']
    
    • pop
    person = {'name': 'lisi', 'age': 11}
    person.pop('name')
    print(person)  # {'age': 11}
    
    dict

    序列转字典

    person = [('name', 'zhangsan'), ('age', 11)]
    d1 = dict(person)  # {'age': 11, 'name': 'zhangsan'}
    或
    d2 = dict(name='lisi', age=12)  # {'age': 12, 'name': 'lisi'}
    

    相关文章

      网友评论

          本文标题:python中的字典

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