zoukankan      html  css  js  c++  java
  • python中的字典

     字典

    字典是Python中唯一内建的映射类型。字典中没有特殊的顺序,但都是存储在一个特定的键(key)下面,键可以是数字,字符串,甚至是元组 
    字典中键的属性:
    不可修改 不可重复 注意:元组可以做为key列表不可以
    字典中常用的方法:
    一、查询
    stu={'name':'MLing',
         'age':18,
         'add':'北京'
         }
    stu['age']=12
    print(stu.get('age1'))
    print(stu.get('name'))
    print(stu['age'])
    运行结果:
    
    None 
    MLing
    12

      

    *取值get更好一点,get不到的话,可以默认返回一个值None

    二、修改
    stu={'name':'MLing',
         'age':18,
         'add':'北京'
         }
    stu['ces']=12
    print(stu)
    运行结果:{'name': 'MLing', 'age': 18, 'add': '北京', 'ces': 12}
    

      


    三、新增
    1.setdefault 只添加不修改
    d1 = {
    'name': 'albert',
    'age': 18,
    }
    d1.setdefault('name', 'Albert')
    d1.setdefault('gender', 'male')
    print(d1)
    
    运行结果:
    
    {'name': 'albert', 'age': 18, 'gender': 'male'}
    
    print(d1.setdefault('name'))
    运行结果:
    albert
    

      

     *如果入参中的key已经存在,不会修改原key的value,除非不存在的时候,才会新增

    *使用方法

    1)setdefault('X') 仅传key-X时,作为查询,返回key对应的value

    2)setdefault('X','Y') 传key-X和value-Y不存在时,作为新增,再原字典中新增一对key和value,传的key-X和value-Y存在时,不新增(注意传参方式)

     2.update 既添加也修改

    d1 = {
    'name': 'albert',
    'age': 18,
    }
    d1.update({'name': 'Albert', 'gender': 'male'}) # 注意传参方式的不同
    print(d1)
    
    # 输出
    
    {'name': 'Albert', 'age': 18, 'gender': 'male'}
    

      

    四、删除

    1)pop:通过key删除一个键值对,如果删除的key不存在时,会报错

    stu={'name':'MLing',
         'age':18,
         'add':'北京'
         }
    stu.pop('age')
    print(stu)
    运行结果:{'name': 'MLing', 'add': '北京'}
    

      


    2)popitem方法类似于list.pop,后者弹出列表最后一个元素。但不同的是,popitem弹出随机的项,因为字典中没有最后的元素,该方法适合一个接一个旳移除并且处理项(不用首先获取键的列表,所以很高效)
    stu={'name':'MLing',
         'age':18,
         'add':'北京'
         }
    print(stu)
    print(stu.popitem())
    print(stu)
    运行结果:
    {'name': 'MLing', 'age': 18, 'add': '北京'}
    ('add', '北京')
    {'name': 'MLing', 'age': 18}
    

      

    3)del:通过key删除一个键值对,如果删除的key不存在时,会报错
    stu={'name':'MLing',
         'age':18,
         'add':'北京'
         }
    del stu['age']
    print(stu)
    

      



    五、其他方法

    stu2=stu.copy()
    print(stu.copy())
    # print(stu.items())
    # stu.clear()
    # print(stu.keys())
    # print(stu.values())
    #
    # stu.update('qq','2121')
    # print(stu)
    
    
    x={'username':'admin','machines':['foo','bar','baz']}
    y=x.copy()
    y['username']='mlh'
    y['machines'].remove('bar')
    print(y)
    print(x)
    

      





    
    


    
    
    
    


  • 相关阅读:
    【原創】字符首字母大寫格式化函數
    [ZT]如何使SQLServer的日志文件不会增大
    乘除法運算時的異常
    【ZT】delegate 与 多线程
    String.IsNullOrEmpty 方法
    专家指“IP地址告急”系炒作 人均IP可达百万
    如何將程序的Access数据库嵌入到资源中发布
    [ZT]JavaScript+div实现模态对话框[修正版]
    android button背景随心搭配
    图片上传,包括从相册选取与拍照上传
  • 原文地址:https://www.cnblogs.com/MLing/p/12758638.html
Copyright © 2011-2022 走看看