第五节

一、字典

  • python的数据结构之一

  • 字典 —— dict

  • 定义:dic = {"key":"dajjlad"}

  • 作用:存储数据,大量,将数据和数据起到关联作用

  • 字典是可变的数据类型,无序的

  • 所有的操作都通过键

    # 键:必须是不可变的数据类型(可哈希),且唯一   不可哈希就是可变数据类型# 值:任意dic = {"10":"苹果手机", #   键 值 对       "11":"苹果手机",       "15”:"小米手机",       "15":"华为手机",       (1,):"oppo手机",       }

1.1字典的增:

  1. 暴力添加

    dic = {'a': '上天', 'b': ['入地', '通幽'], 'c': '吃饭', 'd': '救苦救难'}dic["二狗"] = "我的太阳" # 添加的是一个键值对dic["腾格尔"] = ["来自草原的沙尘暴","音乐界的泥石流"]# 新的键如果在字典中没有,那会添加到最后字典的后面;# 如果有,那将新值替换旧值
  2. 有则不添加,无则添加

    dict.setdefaullt(键,值)

    dic = {'a': '上天', 'b': ['入地', '通幽'], 'c': '吃饭', 'd': '救苦救难'}dic.setdefault("b",["沿着","江山","起起","伏"]) # 键存在,所以不添加dic.setdefault("武器",["刀","枪","棍","棒","斧"])# 键为新,在最后一个键值对后面添加# setdefault 添加分为2步:# 1,先查看键是否在字典# 2,不存在的时候进行添加

1.2字典的删除:

  1. pop(键) —— 通过键删除,具有返 回值

    dic = {"1":"上树","2":"遛狗","3":"开黑","4":"打团"}dic.pop("1") # 删除了 "1":"上树" 这个键值对
  2. clear() —— 清空

    dic = {"1":"上树","2":"遛狗","3":"开黑","4":"打团"}dic.clear() # 清空该字典,保留空字典
  3. del —— 删除

    del dict —— 删除的是容器

    del dict["键"] —— 通过键删除

    dic = {"1":"上树","2":"遛狗","3":"开黑","4":"打团"}del dic # 删除的是整个字典del dic["3"] # 只删除 "3":"开黑" 这个键值对

1.3字典的改

  1. 字典名[键] = 值

    # 和字典的暴力添加一样dic = {"1":"上树","2":"遛狗","3":"开黑","4":"打团"}dic["2"] = "星宿老仙,法力无边" # 直接定位键,修改值
  2. 字典名.update(新字典)——在最后一个键值对后面,迭代添加

    dic = {"1":"上树","2":"遛狗","3":"开黑","4":"打团"}dic1 = {"天山派":"星宿老仙,法力无边","少林":"龙抓手"}dic.update(dic1)print(dic) #{'1': '上树', '2': '遛狗', '3': '开黑', '4': '打团', '天山派': '星宿老仙,法力无边', '少林': '龙抓手'}dic1.update(dic)print(dic1)#{'天山派': '星宿老仙,法力无边', '少林': '龙抓手', '1': '上树', '2': '遛狗', '3': '开黑', '4': '打团'}

1.4字典的查

  1. 字典名.get(键,找不到的换回None)

    dic = {"1":"上树","2":"遛狗","3":"开黑","4":"打团"}
    print(dic.get("5")) # 返回 None
    print(dic.get("5","找不到啊")) # 返回 找不到啊
    print(dic.get("2")) # 返回 遛狗
    
  2. 字典名.setdefault(键)

    dic = {"1":"上树","2":"遛狗","3":"开黑","4":"打团"}
    print(dic.setdefault("3")) # 返回开黑
    print(dic.setdefault("77")) # 返回 None
    print(dic["4"]) # 也可直接查找,没有就是报错
    
    • 字典名.keys() ——所有的键,获取到的是一个高仿列表

    • 字典名.values() —— 所有的值,获取到的是一个高仿列表

    • intems() —— 键值

      • 注意:高仿列表支持迭代,不支持索引

      dic = {"1":"上树","2":"遛狗","3":"开黑","4":"打团"}
      print(dic.keys()) # 所有的键,获取到的是一个高仿列表
      print(dic.valuse()) # 所有的值,获取到的是一个高仿列表
      
  3. for循环,返回的是字典的键

    dic = {"1":"上树","2":"遛狗","3":"开黑","4":"打团"}
    for i in dic:print(i) # 循环出的是字典的键
    

1.5解构

  • 在字典中返回的是键

a,b = 1,2
print(a,b)
# 结果:
# 1 2a,b = ('你好','世界')
print(a,b)
# 结果:
# 你好 世界a,b = ['你好','大飞哥']
print(a,b)
# 结果:
# 你好 大飞哥a,b = {'汪峰':'北京北京','王菲':'天后'}
print(a,b)
# 结果:
# 汪峰 王菲
  • 解构在字典中的作用:

    dic = {"1":"上树","2":"遛狗","3":"开黑","4":"打团"}
    for k,v in dic.items():print('这是键',k)print('这是值',v)
    """
    结果:
    这是键 1
    这是值 上树
    这是键 2
    这是值 遛狗
    这是键 3
    这是值 开黑
    这是键 4
    这是值 打团
    """
    
    • *__是一个万能值,万能接受

      lis = [1,2,3,4,5,6,7,8]# 取出来1,2,5
      a,b,c,d,e,*__ = lis
      print(a,b,e)
      # 结果 1 2 5
      

1.6字典的嵌套

dic = {11:{1:{"秦":"嬴政","秦二世","李斯","商鞅","章邯","蒙恬"},         

                2:{"汉":"刘邦","韩信","卫青","霍去病"}
                3:{"三国":"魏","蜀","吴"}},    
       22:{1:{"歌唱家":{"刘欢":["我和你","弯弯的月亮"]}},         
            2:{"邓紫棋":["泡沫","喜欢你","天堂","光年之外"]},
            3:{"腾格尔":["隐形的翅膀","卡路里","日不落"]}},    
       33:{1:{"蔡徐坤":{"唱":["鸡你太美"],"跳":["钢管舞"],"rap":["大碗面"],"篮球":("NBA形象大使")}},  
            2:{"JJ":{"行走的CD":["江南","曹操","背对背拥抱","小酒窝","不潮不花钱"]}},         
            3:{"Jay":{"周董":["菊花台","双节棍","霍元甲"]}}},    
       44:{1:{"韦小宝":{"双儿":"刺客","建宁":{"公主":{"吴三桂":"熊"}},"龙儿":{"教主老婆":"教主"}}}}
      }
print(dic[201][1]["韦小宝"]["建宁"]["公主"]["吴三桂"])# 熊
print(dic[103][1]["蔡徐坤"]["跳"][0])# 钢管舞
print(dic[102][2]["邓紫棋"][1]) # 黑风雷

后续还会持续更新,从入门到放弃  ^.^。

转载于:https://www.cnblogs.com/linglichong/p/11317966.html

python_0基础开始_day05相关推荐

  1. 0基础怎么学python10010基础怎么学python_0基础的人如何入门 Python ?Python难么?

    人生苦短,我用Python,为啥这么说,因为我们自动化测试有金句:学完Python,便可上天 ~ 废话不多说,相信很多人都听过之前的Python进入小学课本.Python进入浙江省高考等新闻,有这么多 ...

  2. 0基础怎么学python10010基础怎么学python_0基础学python全套python教程

    C语言要写1000行代码,Java只需要写100行,而Python可能只要20行,所以Python是一种相当高级的语言,如今是Python的世界,花时间学习Python编程语言将是你对未来最好的投资, ...

  3. python_0基础开始_day13

    第十三节 一,匿名函数 匿名函数 == 一行函数 lambda == def == 关键字 函数体中存放的是代码 生成器体中存放的也是代码 就是yield导致函数和生成器的结果不统一 lambda x ...

  4. Python基础班每日整理(三)

    02_Python基础_day04 while循环的基本格式 初始化计数器 while 条件: 满足条件要重复执行的代码 -- 修改计数器 明白break和continue两个关键字的作用,两者的区别 ...

  5. java入门 慕路径,Java入门基础知识总结学习教程大全【必看经典】

    类型的表达式,是循环条件,表达式3是党执行了一遍循环之后,修改控制循环的变量值. ??? for语句的执行过程是这样的:首先计算表达式1,完成必要的初始化工作:然后判断表达式2的值,如果表达式的值为t ...

  6. 提交表单自动刷新_Web自动化测试:元素的基础操作和浏览器基础操作

    上一节,我们了解了如何定位元素,其实也有涉及对于元素的操作,这一节我们就详细的介绍一下对于元素的操作和对于浏览器的一些操作 一.对于元素的基础操作: clear():清除输入框内的文本 send_ke ...

  7. java mybatis基础

    java mybatis基础 1.1 什么是mybatis? mybatis是一个优秀的持久层框架. 避免几乎所有的JDBC代码和手动设置参数以及获取结果集的过程. 可以使用简单的xml或者注解来配置 ...

  8. 【J2SE】学习基础

    Java基础 语法基础 OO Exception Array 基础类 I/O Stream Collection/Generic Thread TCP/UDP GUI Meta Data Regula ...

  9. 【Linux系统】基础总结

    我不太清楚运维部门具体是做什么的,就接触过一点点运维部门! 也就是是知道他们负责管理服务器,管理网络,管理项目部署 偶尔自己需要部署,不得不接触一些linux命令.简单总结一些基础 linux系统发展 ...

最新文章

  1. 返回页面顶部最简单方法
  2. ADC/DAC设计常见40问
  3. Python小知识: List的赋值方法,不能直接等于
  4. LeetCode 112. 路径总和 、113. 路径总和 II 思考分析
  5. 原码 反码 补码 详解
  6. HTML学习笔记:iframe框架演示
  7. .NET多线程编程(2)——Thread类
  8. 廖雪峰git学习(3)分支管理【待续】
  9. 计算机地图制图符号制作的心得,计算机地图制图.docx
  10. 第一时间获取文章,可以关注本人公众号:月牙寂道长
  11. 宁波大学计算机非全,宁波大学考研:全日制和非全日制的6大区别,很多人不知道...
  12. 百度地图之添加覆盖物并响应事件
  13. 读书笔记之:《心流 最优体验心理学》 米哈里·契克森米哈赖 第一章、第二章
  14. 股指期货交易流程(股指期货交易规则详解)
  15. 二层交换与MAC地址
  16. [Java]观察者模式和中介者模式改造机场
  17. 脑波设备mindwave二次开发框架
  18. [原创]全面增强版 eXtremeComponents !!!!
  19. PHP获取服务器硬件信息
  20. Qt5.9获取Windows所有盘符(函数QFileInfoList QIr::drives())

热门文章

  1. 基于 Android NDK 的学习之旅-----数据传输二(引用数据类型)(附源码)
  2. oracle ogg00423,ogg实现Oracle到SQL Server 2005的同步
  3. Android中pendingIntent的深入理解
  4. Hibernate连接池配置实例
  5. 四种参数传递的形式——URL,超链接,js,form表单
  6. 漫谈递归:从斐波那契开始了解尾递归
  7. HDFS文件系统基本文件命令、编程读写HDFS
  8. TCP/IP协议栈在MSP430单片机上的实现
  9. 后台开发经典书籍--高性能mysql
  10. 两个字符串,s,t;把t字符串插入到s字符串中,s字符串有足够的空间存放t字符串