• Python学习(004)-字典{}


    特点:
    无序状态
    键唯一
     
    不可变类型:字符串、整型、元组
    可变类型:列表、字典
     
    字典创建
    第一种:
    dic1={'name':'Nick',"age":'18','sex':'man'}
    print(dic1['name'])    ---------------->Nick

     第二种:

    dic2=dict((('name','Nick'),('age',18)))
    print(dic2)    ---------------------->{'name': 'Nick', 'age': 18}

    第三种:

    dic3=dict([['name','Nick'],['age',18]])
    print(dic3)   ------------->{'name': 'Nick', 'age': 18}
    
    1.新增
    键有则修改,无则新增
    如:
    dic1={'name':'Nick',"age":'18','sex':'man'}
    dic1['num']=15755055016
    print(dic1)  ------>{'name': 'Nick', 'age': '18', 'sex': 'man', 'num': 15755055016}
    dic1={'name':'Nick',"age":'18','sex':'man'}
    dic1['age']=15
    print(dic1)  ------->{'name': 'Nick', 'age': 15, 'sex': 'man'}
    setdefault方式
    键存在,则不做动作
    键不存在,则在字典中新增
    如:
    键存在:
    dic1={'name':'Nick',"age":'18','sex':'man'}
    dic1.setdefault('age',34)
    print(dic1)   --------->{'name': 'Nick', 'age': '18', 'sex': 'man'}
    
    键不存在:
    dic1={'name':'Nick',"age":'18','sex':'man'}
    dic1.setdefault('num',15755055016)
    print(dic1)   ------------>{'name': 'Nick', 'age': '18', 'sex': 'man', 'num': 15755055016}

    setdefault是有返回值的

    返回值中,若在原字典中新增了数据,则返回新增的值
    若原字典存在这个键,则返回原字典的值
    如:
    新增
    dic1={'name':'Nick',"age":'18','sex':'man'}
    b=dic1.setdefault('num',15755055016)
    print(b)  --------->15755055016

    键存在

    dic1={'name':'Nick',"age":'18','sex':'man'}
    b=dic1.setdefault('age',24)
    print(b)  -------->18
    2.查
    通过键去查询值
    print(dic1['name'])

    打印字典中所有的键

    dic1.keys() ------>dict_keys(['name', 'age', 'sex'])

    结果非列表类型,若想要列表输出,需要转化

    list(dic1.keys()) -------->['name', 'age', 'sex']
    3.改
    dic1更新dic,有的会被覆盖,没有的会被新增

    dic1={'name':'Nick',"age":18,'sex':'man'}
    dic2=dict((('name','Nick'),('age',19),('num',15755055016)))
    dic1.update(dic2)
    print(dic1)  --------->{'name': 'Nick', 'age': 19, 'sex': 'man', 'num': 15755055016}
    print(dic2)  --------->{'name': 'Nick', 'age': 19, 'num': 15755055016}

    4.删
    删除字典中指定键值对
    
    
    dic1={'name':'Nick',"age":18,'sex':'man'}
    del dic1['name']
    print(dic1)  ------>{'age': 18, 'sex': 'man'}
    
    
    删除字典中指定键值对,会有返回值
    dic1={'name':'Nick',"age":18,'sex':'man'}
    a=dic1.pop('age')
    print(a)  ------>18

    清空整个字典
    dic1={'name':'Nick',"age":18,'sex':'man'}
    dic1.clear()
    print(dic1)  ------>{}      表示字典内的键值对被清空,但该字典仍然在内存中

    随机删除键值对

    dic1={'name':'Nick',"age":18,'sex':'man'}
    a=dic1.popitem()
    print(a,dic1)  -------->('sex', 'man') {'name': 'Nick', 'age': 18}

    删除字典
    dic1={'name':'Nick',"age":18,'sex':'man'}
    del dic1
    print(dic1)  ------->报错,因为dic1字典被删除,不存在了

    5.其他操作涉及的方法
    dic=dict.fromkeys(['host1','host2','host3'],'name')
    print(dic)------>{'host1': 'name', 'host2': 'name', 'host3': 'name'}   #新建字典方式,但存在问题,涉及深浅拷贝,这里只会浅拷贝
    
    
    排序    (依据键值进行排序)
    dic={'2':'555','4':'666','1':'111','3':'222'}
    print(sorted(dic))   ---->['1', '2', '3', '4']
    print(sorted(dic.values()))   ------>['111', '222', '555', '666']
    print(sorted(dic.items()))    ------>[('1', '111'), ('2', '555'), ('3', '222'), ('4', '666')]

    遍历
    打印键
    for i in dic1:
    print(i)   ------>name age sex

    打印键与值
    print(i,dic1(i))   
    name Nick
    age 18
    sex man 直接快速高效的方法
    for i,v in dic1.items():
        print(i,v)
    
    
    name Nick
    age 18
    sex man 需要转换,耽误时间,效率低

    打印键值对
    for i in dic1.items():
        print(i)    ------>
    ('name', 'Nick')
    ('age', 18)
    ('sex', 'man')
  • 相关阅读:
    PHP数字签名算法
    PHP日期相关类
    浏览器常见bug及解决办法
    PHPer整理的前端开发知识
    小程序之轮播图(2020.4.13更新)
    Android APK反编译 apktool使用教程
    秒懂-单列布局水平居中布局
    一句话搞定-phpStudy安装yaf扩展
    Git的简单安装
    人人都能读懂的css3 3d小demo
  • 原文地址:https://www.cnblogs.com/Nick1994/p/9636111.html
Copyright © 2020-2023  润新知