zoukankan      html  css  js  c++  java
  • 9、字典

    可变容器,可存任意类型对象,以键值对形式存在,键必须唯一且不可以变,如字符串、数字或者元组

    1、创建与访问字典

    #创建字典
    dict1 = {"name":"char", "age":26}
    print(dict1) #{'age': 26, 'name': 'char'}
    
    #访问字典值,如果访问的键不存在会输出错误
    print(dict1["name"]) #char
    #print(dict1["sex"]) # KeyError: 'sex'

    2、修改与删除字典

    #修改字典
    print(dict1["name"])  #char
    dict1["name"] = "huang"
    print(dict1["name"]) #huang
    
    #删除字典,能删除单一元素,也能清空字典
    del dict1["name"] #删除键"name"
    dict1.clear()       #删除字典
    del dict1           #删除字典

    3、内置函数

    #计算字典元数的个数
    dict1 = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
    print(len(dict1))   # 3
    
    #输出字典可打印的字符串表示
    print(str(dict1))  #{'Class': 'First', 'Age': 7, 'Name': 'Runoob'}
    
    #返回数据类型
    print(type(dict1)) #<class 'dict'>

    4、方法

    #删除字典内的所有元素
    dict1 = {"name":"char", "age": 26}
    print(len(dict1)) #删除前长度为:2
    dict1.clear()
    print(len(dict1)) #删除后长度为:0
    
    #浅复制一个字典
    dict1 = {"name":"char", "age": 26}
    dict2 = dict1
    print(dict2) #{'age': 26, 'name': 'char'}
    
    #dict.formkeys(seq,value=None)创建一个新字典,以序列seq中元素做字典的键,value为键对应的初始值
    seq = ("name","age","sex")
    dict3 = dict.fromkeys(seq)
    print(dict3) #{'name': None, 'sex': None, 'age': None}
    dict4 = dict.fromkeys(seq,10)
    print(dict4) #{'age': 10, 'sex': 10, 'name': 10}
    
    #dict.get(key, default=None)返回指定键的值,如果键不存在返回默认值None
    print(dict4.get("age")) #10
    print(dict4.get("car")) #None
    print(dict4.get("car","键不存在")) #键不存在
    
    #key in dict 查询一个键是否在字典里,在则返回True,否则返回False
    print("age" in dict4) #True
    print("car" in dict4) #False
    
    #items()遍历键和值,并返回元组数组
    print(dict4.items()) #dict_items([('name', 10), ('sex', 10), ('age', 10)])
    print(type(dict4.items())) #<class 'dict_items'>
    for key,val in dict4.items():
        print("%s:%d" %(key,val)) #age:10,sex:10,name:10
    
    #keys()以列表返回一个字典所有的键
    print(dict4.keys()) #dict_keys(['sex', 'name', 'age'])
    for key in dict4.keys():
        print(key)     #sex,age,name
    
    #values()以列表返回字典中的所有值
    print(dict4.values())  #dict_values([10, 10, 10])
    for val in dict4.values():
        print(val) #10,10,10
    
    #setdefault(key,default=None)添加一个键,如果不存在则值为default,如果存在则不添加
    print(dict4) #{'name': 10, 'age': 10, 'sex': 10}
    dict4.setdefault("age")
    print(dict4) #{'name': 10, 'sex': 10, 'age': 10}
    dict4.setdefault("work")
    print(dict4) #{'work': None, 'name': 10, 'age': 10, 'sex': 10}
    
    #dict1.update(dict2)把字典dict2更新到dict1里
    print(dict4) #{'age': 10, 'work': None, 'name': 10, 'sex': 10}
    dict4.update({"car":"QQ","wecat":60290})
    print(dict4) #{'sex': 10, 'wecat': 60290, 'name': 10, 'car': 'QQ', 'work': None, 'age': 10}
  • 相关阅读:
    .net core webapi 前后端开发分离后的配置和部署
    403
    Visual Studio提示“无法启动IIS Express Web服务器”的解决方法
    一件能让人没脸见人的事
    过程 sp_addextendedproperty, 对象无效。不允许有扩展属性,或对象不存在。
    处理程序“ExtensionlessUrlHandler-Integrated-4.0”在其模块列表中有一个错误模块“ManagedPipelineHandler”
    阿里ECS配置MSSQL远程连接的坑
    .Net Webapi SignalR与微信小程序的交互
    Entity Framework 异常: 'OFFSET' 附近有语法错误。 在 FETCH 语句中选项 NEXT 的用法无效。
    postgresql 表继承
  • 原文地址:https://www.cnblogs.com/jp-mao/p/6289948.html
Copyright © 2011-2022 走看看