美文网首页
4.字典知识汇总

4.字典知识汇总

作者: honestpan | 来源:发表于2018-05-26 10:39 被阅读0次
    1. 使用函数dict 从其他映射(如其他字典)或者键值对序列创建字典。
    items = [("name","john"),("age",123)]
    dItems = dict(items)
    print(dItems)#{'name': 'john', 'age': 123}
    
    #关键字实参
    dItems = dict(name='jay',age=12)
    print(dItems)#{'name': 'jay', 'age': 12}
    
    1. 基本的字典操作
    • len()返回字典中包括的项目数
    • d[key] 返回与key关联的value
    • d[key]=value 修改字典中的项
    • del d[key] 删除健为key的项
    • key in d 检查字典是否包含键key
    #len()返回字典中包括的项目数
    print("dItems 中元素的个数是: %d" %(len(dItems)))
    #d[key] 返回与key关联的value
    print("name = %s" %(dItems['name']))
    #d[key]=value 修改字典中的项
    dItems['age'] = 23
    print("修改年龄后是:%d" %dItems['age'])
    
    #del d[key] 删除健为key的项
    del dItems['name']
    dItems['name'] = '六小龄童'
    
    print("我的艺名是:%s,年龄是 %d" %(dItems['name'],dItems['age']))
    #key in d 检查字典是否包含键key
    if 'name' in dItems:
        print(dItems['name'])
    
    1. 将字符串格式设置功能用于字典
    books = {'book1':'人间失格',"book2":"悲惨世界"}
    print("book1 的名称是{book1}".format_map(books))
    
    1. 字典方法
    • clear
    dict2 = dict([("语文",99),("英语",34)])
    dict2.clear()
    print(dict2)#{}
    
    • copy
      如果替换副本中的值,原件不受影响,如果就地修改副本中的值(而不是替换),原件也会发生变化。
    x = {'username':'admin','machines':['foo','bar','baz']}
    y = x.copy()
    y['username'] = 'mlh'
    print(x)#{'username': 'admin', 'machines': ['foo', 'bar', 'baz']}
    y['machines'].append('hod')
    print(y)#{'username': 'mlh', 'machines': ['foo', 'bar', 'baz', 'hod']}
    print(x)#{'username': 'admin', 'machines': ['foo', 'bar', 'baz', 'hod']}
    

    为了避免原件受影响,因此可以用 deepcopy

    from copy import deepcopy
    x = {'username':'admin','machines':['foo','bar','baz']}
    z = deepcopy(x)
    print(z)#{'username': 'admin', 'machines': ['foo', 'bar', 'baz']}
    z['username'] = 'jone'
    z['machines'].clear()
    print(x)#{'username': 'admin', 'machines': ['foo', 'bar', 'baz']}
    print(z)#{'username': 'jone', 'machines': []}
    
    • fromkeys
      只用key就可以生成字典,fromkeys 的第一个参数是一个键的列表,第二个参数可加可不加,不加默认所有键对应的值是None,加的话就是指定键对应的值是第二个参数
    dict_k = {}.fromkeys(['name','age'])
    print(dict_k)#{'name': None, 'age': None}
    dict_k1 = dict.fromkeys(['name','age'])
    print(dict_k1)#{'name': None, 'age': None}
    print({}.fromkeys(['name','age'],'~~~'))#{'name': '~~~', 'age': '~~~'}
    
    • get
      get(key,default_value)
      如果字典中有key,就返回key的value,否则默认返回None,如果指定了default_value,则返回default_value,这个方法不会抛出异常
    x = {'username':'admin','machines':['foo','bar','baz']}
    print(x.get('username'))#admin
    print(x.get('age'))#None
    print(x.get('sex','F'))#F
    
    • items
      返回包含字典项的列表,返回类型是dict_items类型
    x = {"name":"jone","sex":"F","age":23}
    y = x.items()
    print(y)#dict_items([('name', 'jone'), ('sex', 'F'), ('age', 23)])
    print(len(y))#3
    
    • keys
      返回key的字典视图key的列表,类型是dict_keys
    x = {"name":"jone","sex":"F","age":23}
    print(x.keys())#dict_keys(['name', 'sex', 'age'])
    
    • pop
      获取key对应的value,并从字典中删除
    x = {"name":"jone","sex":"F","age":23}
    print(x.pop('name'))#jone
    print(x)#{'sex': 'F', 'age': 23}
    
    • popitem
      因字典没有先后顺序,所以该方法的作用是从字典中随机弹出一项
    x = {"name":"jone","sex":"F","age":23}
    print(x.popitem())
    
    • setdefault
      设置字典当键不存在时,设置默认值,如果键存在就不设置,只返回键对应的值
    x = {"name":"jone","sex":"F","age":23}
    x.setdefault('sal',2003.34)
    print(x)#{'name': 'jone', 'sex': 'F', 'age': 23, 'sal': 2003.34}
    x.setdefault('address')
    print(x)#{'name': 'jone', 'sex': 'F', 'age': 23, 'sal': 2003.34, 'address': None}
    x.setdefault('address','has ming')#{'name': 'jone', 'sex': 'F', 'age': 23, 'sal': 2003.34, 'address': None}
    
    • update
      使用一个字典中的项来更新另外一个字典
    x = {"name":"jone","sex":"F","age":23}
    y = {"name":"li","age":45}
    x.update(y)
    

    如果y中的键在x中不存在,那么就把字典y中的项加入到x中,如果键在x中存在就更新之

    x = {"name":"jone","sex":"F","age":23}
    y = {"name":"li","age1":45}
    x.update(y)
    print(x)#{'name': 'li', 'sex': 'F', 'age': 23, 'age1': 45}
    
    • values
      返回一个由字典中的值组成的字典视图
    dict1 = dict([("语文",23),("数学",34)])
    print(dict1.values()) # dict_values([23, 34])
    

    相关文章

      网友评论

          本文标题:4.字典知识汇总

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