Python之字典

199 阅读2分钟

字典的正确用法

  • 创建空字典

    dict0 = {}
    
  • 创建非空字典

    dict1 = {'name':'Jane', 'age':26, 'sex':'female'}
    
  • 新增键值对

    dict1['address'] = '深圳市南山区义学街四坊'
    
  • 修改键值对

    # 同一个键不允许出现两次,后一个值会被记住,覆盖前一个值
    dict1['name'] = 'Smith'
    
  • 删除键'name'

    del dict1['name']
    
  • 清空字典

    dict1.clear()
    
  • 删除字典

    del dict1
    

字典错误使用方法

  • 键使用列表, ['name']为列表,字典中不能使用列表作为键,可以使用“字符串、数字、元组”作为键

    dict2 = {['name']:'Jane', 'age':26, 'sex':'female'}
    

字典内置函数及方法

  • len(dict) 获取字典长度,一个键值对表示一个长度

    print(len(dict1))   # 打印结果:4
    
  • str(dict1) 将字典转化为字符串表示

    print(str(dict1))   # 打印结果:{'name': 'Smith', 'age': 26, 'sex': 'female', 'address': '深圳市南山区义学街四坊'}
    
  • type(dict) 返回变量类型

    print(type(dict1))  # 打印结果:<class 'dict'>
    
  • dict.copy() 浅复制字典,开辟一块内存空间,将值拷贝进去,二者id地址不同

    dict1_copy = dict1.copy()
    print('id(d):', id(dict1_copy))   # 打印结果:2589300137088
    print(id(dict1))   # 打印结果:2589300283904
    
  • dict.fromkeys(seq[, value]) 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值。

    seq:字典键值列表(即指字典变量)

    value:可选参数,设置键序列(seq)对应的值,默认为None。

    返回一个新的字典

    newDict = dict.fromkeys(dict1)  # 打印结果:{'name': None, 'age': None, 'sex': None, 'address': None}
    dict.fromkeys(dict1, 10)  # 打印结果:{'name': 10, 'age': 10, 'sex': 10, 'address': 10}
    
  • dict1.get(key, default=None) 返回指定的键值

    dict1.get('age')
    
  • key in dict 判断键在字典里则返回true,不在则返回false

    if 'name' in dict1:
        print('yes')
    else:
        print('no')
    
  • dict1.items() 以列表返回一个视图对象

    dict2 = dict1.items()  # 打印结果:dict_items([('name', 'Smith'), ('age', 26), ('sex', 'female'), ('address', '深圳市南山区义学街四坊')])
    
  • dict1.keys() 返回键集合的视图对象

    dict3 = dict1.keys()   # 打印结果:dict_keys(['name', 'age', 'sex', 'address'])
    
  • d.update(d2) 把字典d2的键/值对更新到d里

    d = {'Name': 'Runoob', 'Age': 7}
    d2 = {'Sex': 'female' }
    d.update(d2)    # 打印结果:{'Name': 'Runoob', 'Age': 7, 'Sex': 'female'}
    
  • dict1.values() 返回字典所有值的集合列表

    DValue = dict1.values()     # 打印结果:dict_values(['Smith', 26, 'female', '深圳市南山区义学街四坊'])
    
  • pop(key[,default]) 删除字典给定键 key 所对应的值,返回值为被删除的值。

    key:要删除的值。default:如果没有key,返回default值

    deleteKey = dict1.pop('name', 'not find')   # 打印结果:Smith
    
  • popitem() 随机返回并删除字典中的最后一对键和值

    dleteLast = dict1.popitem()     
    print(dleteLast)    # 打印结果:('address', '深圳市南山区义学街四坊')