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/

  • 相关阅读:
    Path Sum II
    Convert Sorted Array to Binary Search Tree
    Construct Binary Tree from Inorder and Postorder Traversal
    Construct Binary Tree from Preorder and Inorder Traversal
    Maximum Depth of Binary Tree
    Binary Tree Zigzag Level Order Traversal
    Binary Tree Level Order Traversal
    Same Tree
    Validate Binary Search Tree
    Binary Tree Inorder Traversal
  • 原文地址:https://www.cnblogs.com/uge3/p/6820454.html
Copyright © 2011-2022 走看看