zoukankan      html  css  js  c++  java
  • Python------魔鬼中的天使

    5.1字典

    5.11字典是什么

    dict

    {} "键":"值" 在别的语言叫键值对数据

    dic = {"key":"value",1:2,2:3}

    键:必须是可哈希(不可变的数据类型),并且是唯一的

    值: 任意

    字典是无序的,Python3.6版本以上 默认了咱们定义顺序,Python3.5以下随机显示

    字典是可变的,增加,删除,修改,查看, 其他操作

    5.12字典怎么用

    增加

    1.setdefault (dic.setdefault("键","值"))

    dic = {"a":"b","b":"d"}

    dic.setdefault("c","aaa")

    print(dic)

    or print(dic.setdefault("D"))

    先去字典查看要添加的键存不存在,如果键在字典中存在就不添加,不存在就添加.

    2.dic["键"] = "值"

    删除

    dic = {"a":"b","b":"d"}

    print(dic.pop("a")) 通过键删除 pop具有返回值,返回的被删除的值

    print(dic)

    字典中没有remove

    del dic 删除整个字典

    print(dic)

    del dic["b"] 删除指定的键值对

    print(dic)

    dic.clear() 清空

    print(dic) 删除整个字典中的键值对

    修改

    dic1 = {"a":"b","b":"d"}

    dic["b"] = "这是值" 键在字典中存在就是修改,键在字典中不存在就是增加

    print(dic)

    dic2 = {1:2,"a":"a1"}

    dic2.update(dic0 update括号里的字典级别高,此处dic1和dic2中有相同键的话,dic1取代dic2的值

    print(dic2)

    查看

    字典的查询只能通过键获取值,不能通过值获取键

    dic = {1:2,"a":"a1"}

    print(dic["c"]) 如果有键在字典中存在就放回键对应的值,如果不存在就报错

    get --- 获取

    print(dic.get("c","你不是傻,你个狍子))

    获取值得时候可以指定返回的内容,不指定返回内容且键不存在的时候返回none不报错

    扩展

    dic = {1:2,"a":"a1"}

    for i in dic: for循环字典的时候打印的是字典的键

    print(i,dic[i])

    其他方法:
    #         for i in dic:
    #             print(i)   循环的是字典的键
    #
    #         for i in dic.keys():
    #             print(i)
    #
    #         dic.keys()   --  返回的是一个高仿列表 --  没有索引
    #         dic.values() --  返回的是一个高仿列表 -- 没有索引
    #         dic.items()  --  返回的是一个高仿列表,列表里存放的是元组类型,
    #         元组第一个是键,第二个元素是值
    

    解构

    a = 1

    b = 1

    a,b = b,a

    解构的值可以是元素,字符串,列表,元组,字典

    枚举

    li = [1,2,3,4,54]

    for i,k in enumerate(li): enumerate 第二个参数默认不写就是0

    (enumerate(li,起始数) 默认是0,也可以自己定起始数)

    print(i,k)

    字典的嵌套

    # dic = {
    #     101:{1:["周杰伦","林俊杰"],2:{"汪峰":["国际章",{"前妻1":["熊大","熊二"]},
    #                                   {"前妻2":["葫芦娃","木吒"]}]}},
    #     102:{1:["李小龙","吴京","李连杰"],2:{"谢霆锋":["张柏芝","王菲"]},
    #          3:["alex","wusir","大象","奇奇"]},
    #     103:{1:["郭美美","干爹"],2:{"王宝强":{"马蓉":"宋哲"}}},
    #     201:{1:["凹凸曼","皮卡丘"],2:{"朱怼怼":{"杨幂":"刘恺威"}}}
    # }
    
    # print(dic[101][2]["汪峰"][2]["前妻2"][0])
    #['国际章', {'前妻1': ['熊大', '熊二']}, {'前妻2': ['葫芦娃', '木吒']}]
    #{'前妻2': ['葫芦娃', '木吒']}
    #['葫芦娃', '木吒']
    
    # home1 = dic[102][3][2]
    # {1: ['李小龙', '吴京', '李连杰'],
    # 2: {'谢霆锋': ['张柏芝', '王菲']},
    # 3: ['alex', 'wusir', '大象', '奇奇']}
    # print(home1)
    
    # print(dic[103][2]["王宝强"]["马蓉"])
    

    5.13字典能干啥

    字典是存储大量的数据,字典比列表还大

    字典的查找值的时候能够方便,快捷

    li = ["a","b","c","d"]

    字典能够将数据进行关联

    dic = {"a":"b","b":"c","c":"d"}

    字典比较消耗内存 最常用的数据:字符串,列表,字典

    有明确的对应关系时,推荐使用字典 字典一定要用明白----Json

    目前所学的知识点字典不能转换

  • 相关阅读:
    2018年第九届蓝桥杯【C++省赛B组】第二题 明码
    2018年第九届蓝桥杯【C++省赛B组】第三题 乘积尾零
    2018年第九届蓝桥杯【C++省赛B组】第四题 测试次数
    L2-023 图着色问题
    L2-011 玩转二叉树
    获取当前的时间,转化为char[]格式unix时间戳
    创建子进程
    strerror
    gdb
    gcc
  • 原文地址:https://www.cnblogs.com/hql1117/p/10997863.html
Copyright © 2011-2022 走看看