zoukankan      html  css  js  c++  java
  • python第五天 字典

    今天,已经系统的学习了一下文件相关操作!对三级菜单代码进行的优化:

    菜单文件:以字典格式

    menu.txt

      {'第一层':{'第二层':{'第三层':['内容1','内容2','内容3']}},'第一层2':{'第二层2':{'第三层2':['内容12','内容22','内容32']}}}

    增加代码在开头如下:

    1 with open('menu.txt','r',encoding='utf-8') as f:
    2     info=eval(f.readline())#打开并转成字符

    如以便得以实现菜单存在文件中!

    同时学习了集合的使用:

     1  1 list_1=[1,2,3,4,6,3,2]
     2  2 print('原始列表1:',list_1)
     3  3 list_2=[3,46,6,2]
     4  4 print('原始列表2:',list_2)
     5  5 
     6  6 list_1=set(list_1)#去重为集合
     7  7 print('去重列表1:',list_1)
     8  8 
     9  9 print('合并列表1、2后:',list_1.union(list_2))#两个列表合并去重
    10 10 print('列表1与列表2的交集:',list_1.intersection(list_2))#两个列表有交集的元素
    11 11 print('列表1差集列表2:',list_1.difference(list_2))#列表1减去在列表2中有出现的元素
    12 12 print('列表1是否是列表2的子集:',list_1.issubset(list_2))#返回真、假
    13 13 print('列表1是否是列表2的父集:',list_1.issuperset(list_2))#返回真、假
    14 14 print('列表1与列表2无交集:',list_1.isdisjoint(list_2))#无交集返回真、有交集返回假
    15 15 print('列表1与列表2的对称差集:',list_1.symmetric_difference(list_2))#列表1对列表2的差集加上列表2对列表1的差集的集合,即去除两个列表中交集元素
    内容为
    字典的用法英文
     1 #<字典>
     2 #help(dict)
     3 #
     4 #
     5 #字典一种key - value 的数据类型,使用就像我们上学用的字典,通过笔划、字母来查对应页的详细内容。
     6 #
     7 #字典的特性:dict是无序的,key必须是唯一的,所以天生去重。字典里没有下标
     8 #
     9 #key-value
    10 #号码(下标):内容(可以重复)
    11 #
    12 
    13 print ('                                                ')
    14 print ('-------------创建字典的方法壹-------------------')
    15 dict1 = {'num2': 'LongZe', 'num3': 'XiaoZe','num4':'Maliy','num5':'Jack','num6':'Hagan','num7':'Cahill'}
    16 print(dict1)
    17 
    18 print ('                                                ')
    19 print ('-------------创建字典的方法二-------------------')
    20 dict2 = dict(鱼='让编程改变',书='读嘟嘟',笔='写写写')
    21 print(dict2)
    22 
    23 print ('                                                ')
    24 print ('-------------创建字典的方法三-------------------')
    25 dict3 =dict((('f',70),('i',50),('s',111),('h',104)))
    26 print(dict3)
    27 
    28 
    29 print('                                                 ')
    30 print('------------------------字典增加-----------------')
    31 dict1['yyy'] = '追加字典'
    32 print(dict1)
    33 
    34 print('                                                 ')
    35 print('------------------------字典修改-----------------')
    36 dict2[''] = '修改字典'
    37 print(dict2)
    38 
    39 print('                                                 ')
    40 print('------------------------字典删除方法壹-----------')
    41 dict1.pop('num3') 
    42 print(dict1)
    43 
    44 print('                                                 ')
    45 print('-----------py通用方法---字典删除方法二-----------')
    46 del dict1['num4']
    47 print(dict1)
    48 
    49 print('                                                 ')
    50 print('------------字典删除方法三随机删除一个---------')
    51 dict1.popitem()
    52 print(dict1)
    53 
    54 
    55 print('                                                 ')
    56 print('------------------字典查找方法壹返回True---------')
    57 'num2' in dict1
    58 print('num2' in dict1)
    59 
    60 print('                                                 ')
    61 print('---------------字典查找方法二----安全获取的方法--')
    62 cz = dict1.get("num2")
    63 print(cz)
    64 
    65 print('                                                 ')
    66 print('------------------字典查找方法三-----------------')
    67 dict1["num2"]
    68 print(dict1["num2"])
    69 
    70 print ('如果一个key不存在,就报错,get不会,不存在只返回None')
    71 
    72 print('                                                 ')
    73 print('                                                 ')
    字典的用法
     1 #多级字典嵌套及操作
     2 av_catalog = {
     3     "欧美":{
     4         "www.youporn.com": ["很多免费的,世界最大的","质量一般"],
     5         "www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"],
     6         "letmedothis.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],
     7         "x-aryrtyrtt.com": ["质量很高,真的很高","全部收费,屌比请绕过"]
     8     },
     9     "日韩":{
    10         "tokyo-hottuiyui": ["质量怎样不清楚","听说是收费的"]
    11     },
    12     "大陆":{
    13         "1024hkhkhkhkhkh": ["全部免费,真好,好人一生平安","服务器在国外,慢"]
    14     }
    15 }
    16 
    17 av_catalog["大陆"]["1024"][1] += ",可以用爬虫爬下来"
    18 
    19 print(av_catalog["大陆"]["1024"])
    20 #ouput 
    21 ['全部免费,真好,好人一生平安', '服务器在国外,慢,可以用爬虫爬下来']
    多级字典嵌套及操作
     1 #以下代码复制到python(3.6.2rc2)下 按F5 可以正常执行,对比学习。QQ:124111294欢迎
     2 #字典的其它姿势
     3 
     4 #values 打印不包括keys所有的值
     5 info.values()
     6 dict_values(['LongZe Luola', 'XiaoZe Maliya'])
     7 
     8 #keys 打印所有keys的值
     9 info.keys()
    10 dict_keys(['stu1102', 'stu1103'])
    11 
    12 #setdefault 创建一个新的值,寻找某值,寻找不到创建
    13 info.setdefault("stu1106","Alex")
    14 'Alex'
    15 info
    16 {'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'}
    17 info.setdefault("stu1102","龙泽萝拉")
    18 'LongZe Luola'
    19 info
    20 {'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'}
    21 
    22 #update  合并两字典,交叉就覆盖,没有就添加。
    23 info
    24 {'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'}
    25 b = {1:2,3:4, "stu1102":"龙泽萝拉"}
    26 info.update(b)
    27 info
    28 {'stu1102': '龙泽萝拉', 1: 2, 3: 4, 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'}
    29 
    30 #items  字典转成列表 
    31 info.items()
    32 dict_items([('stu1102', '龙泽萝拉'), (1, 2), (3, 4), ('stu1103', 'XiaoZe Maliya'), ('stu1106', 'Alex')])
    33 
    34 #通过一个列表生成默认dict,有个没办法解释的坑,少用吧这个
    35 #初始一个新的字典,每个KEY用同一个值<值等于浅COPY,类似快捷方式>
    36 dict.fromkeys([1,2,3],'testd')
    37 {1: 'testd', 2: 'testd', 3: 'testd'}
    字典的其它姿势
     1 #以下代码复制到python(3.6.2rc2)下 按F5 可以正常执行,对比学习。QQ:124111294欢迎
     2 #循环dict<字典>
     3 
     4 #方法1  #通过key寻找打印
     5 for key in info:
     6     print(key,info[key])
     7 
     8 #方法2  #把字典转成列表,然后打印列表里的('k','v')
     9 for k,v in info.items(): #会先把dict转成list,数据大时莫用
    10     print(k,v)
    循环dict<字典>

    您的资助是我最大的动力!
    金额随意,欢迎来赏!

    如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的推荐按钮。
    如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的关注我

    如果,想给予我更多的鼓励,求打

    因为,我的写作热情也离不开您的肯定支持,感谢您的阅读,我是【莫柔落切】!

    联系或打赏博主【莫柔落切】!https://home.cnblogs.com/u/uge3/

  • 相关阅读:
    spring-注解配置-junit整合测试-aop
    安装springsource-tool-suite插件成功之后找不到spring的处理办法
    spring-搭建-概念-配置详解-属性注入
    JSP-案例-商品增删改
    struts2-自定义拦截器-struts2标签
    struts2-OGNL表达式-OGNL与Struts2的结合
    struts2-result-servletAPI-获得参数-参数封装
    struts2-环境搭建-访问流程-配置详解-常量配置-类详解
    Hibernate-一对多|多对一-多对多
    Hibernate-HQL-Criteria-查询优化
  • 原文地址:https://www.cnblogs.com/uge3/p/6820454.html
Copyright © 2011-2022 走看看