• python基础之字典篇


    tips:字典是另一种可变容器模型,且可存储任意类型对象,字典是由键值对构成,键必须是不可迭代对象,值可以为任意对象

    一,字典的声明与赋值

    #声明一个字典
    dict = {}
    #字典初始化赋值
    dict = {"name":"wuxiaoshi","major":"programmer"}

    二,字典的查询

    #读取字典
    dict = {"name":"wuxiaoshi","major":"programmer"}
    dict['name'] # wuxiaoshi
    dict['major'] #programmer
    
    #循环读取
    for key,item in dict.items():
        print(item) # 值 wuxiaoshi,programmer
        print(key)  #键 name,major

    三,字典的新增

    # 字典的添加
    dict = {}
    dict['name'] = 'wuxiaoshi'
    dict['age'] = 20
    print(dict) #{"name":"wuxiaoshi","age":20}
    
    #setdefault(key,value) 键无则添加 键有则不变,值无就是None
    dict = {}
    dict.setdefault('age',20)
    dict.setdefault('name':'wuxiaoshi')
    dict.setdefault('name':'xiaowushi')
    dict.setdefault('hobbdy')
    print(dict) # {'age': 20, 'name': 'wuxiaoshi', 'hobbdy': None}

    四,字典的删除

    #pop(key) 如果key存在,则删除key相应的这个键值对,并返回key对应的value,否则,将会报错 KeyError 
    dict = {"name":"wuxiaoshi","age":20,"hobby":"reading,writting"}
    print(dict.pop('name')) # wuxiaoshi
    print(dict) #{'age': 20, 'hobby': 'reading,writting'}
    print(dict.pop('a')) #  KeyError:a
    
    #popitem() D.popitem() -> (k, v), remove and return some (key,value) pair as a 2-tuple; but raise KeyError if D is empty.
    dict = {"name":"wuxiaoshi","age":20,"hobby":"reading,writting"}
    print(dict.popitem()) # 理论上是随机删除一个,可能会有问题
    
    #del 删除
    dict = {"name":"wuxiaoshi","age":20,"hobby":"reading,writting"}
    del dict['name'] #删除 name的键值对
    del dict #删除整个字典,从内存中把空间抹掉
    
    #clear 清空,但是保留内存地址
    dict.clear()  # {}

    五,字典的更新

    # 直接更改方法
    dict = {"name":"wuxiaoshi","age":20,"hobby":"reading,writting"}
    dict['name'] = 'xiaowushi'
    print(dict) #{'name': 'xiaowushi', 'age': 20, 'hobby': 'reading,writting'}
    
    #update
    '''
    update(...) method of builtins.dict instance
        D.update([E, ]**F) -> None.  Update D from dict/iterable E and F.
        If E is present and has a .keys() method, then does:  for k in E: D[k] = E[k]
        If E is present and lacks a .keys() method, then does:  for k, v in E: D[k] = v
        In either case, this is followed by: for k in F:  D[k] = F[k]
       翻译过来就是 有则更新,无则添加
    '''
    dict1 = {"name":"wuxiaoshi","age":20,"hobby":"reading,writting"}
    dict2 = {"name":"furao","major":"programmer"}
    
    dict1.update(dict2) # {'name': 'furao', 'age': 20, 'hobby': 'reading,writting', 'major': 'programmer'}
    
    dict2.update(dict1) #{'name': 'wuxiaoshi', 'major': 'programmer', 'age': 20, 'hobby': 'reading,writting'}

    六,字典的内置函数

    # get()  通过Key来找值,如果key不存在,可以设置一个默认值
    dict = {"name":"furao","major":"programmer"}
    
    dict.get("name")  # furao
    dict.get('age',18) # 18
    
    #keys() 获取字典中的key 返回dict_keys
    dict = {"name":"wuxiaoshi","age":20,"hobby":"reading,writting"}
    dict.keys() # dict_keys(['name', 'age1', 'hobby']) 如果想返回列表 则list强转
    list(dict.keys()) # ['name', 'age', 'hobby']
    
    #values()
    dict = {"name":"wuxiaoshi","age":20,"hobby":"reading,writting"}
    dict.values() # ['wuxiaoshi', 20, 'reading,writting']
    
    #items()
    dict.items() # [('name', 'wuxiaoshi'), ('age1', 20), ('hobby', 'reading,writting')]
  • 相关阅读:
    .dll 无法查找或者打开PDB文件
    VC++中解决“在查找预编译头使用时跳过”的方法
    如何重置设置开发环境
    opencv与VS的配置
    supermap开发webgis的经验
    Json 与GeoJson
    地理配准
    DBMS
    C#三层构架
    重装系统简要步骤
  • 原文地址:https://www.cnblogs.com/wuxiaoshi/p/9736740.html
Copyright © 2020-2023  润新知