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

菜单文件:以字典格式

menu.txt

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

增加代码在开头如下:

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

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

同时学习了集合的使用:

  1 list_1=[1,2,3,4,6,3,2]
2 print('原始列表1:',list_1)
3 list_2=[3,46,6,2]
4 print('原始列表2:',list_2)
5
6 list_1=set(list_1)#去重为集合
7 print('去重列表1:',list_1)
8
9 print('合并列表1、2后:',list_1.union(list_2))#两个列表合并去重
10 print('列表1与列表2的交集:',list_1.intersection(list_2))#两个列表有交集的元素
11 print('列表1差集列表2:',list_1.difference(list_2))#列表1减去在列表2中有出现的元素
12 print('列表1是否是列表2的子集:',list_1.issubset(list_2))#返回真、假
13 print('列表1是否是列表2的父集:',list_1.issuperset(list_2))#返回真、假
14 print('列表1与列表2无交集:',list_1.isdisjoint(list_2))#无交集返回真、有交集返回假
15 print('列表1与列表2的对称差集:',list_1.symmetric_difference(list_2))#列表1对列表2的差集加上列表2对列表1的差集的集合,即去除两个列表中交集元素

内容为

字典的用法英文
 #<字典>
#help(dict)
#
#
#字典一种key - value 的数据类型,使用就像我们上学用的字典,通过笔划、字母来查对应页的详细内容。
#
#字典的特性:dict是无序的,key必须是唯一的,所以天生去重。字典里没有下标
#
#key-value
#号码(下标):内容(可以重复)
# print (' ')
print ('-------------创建字典的方法壹-------------------')
dict1 = {'num2': 'LongZe', 'num3': 'XiaoZe','num4':'Maliy','num5':'Jack','num6':'Hagan','num7':'Cahill'}
print(dict1) print (' ')
print ('-------------创建字典的方法二-------------------')
dict2 = dict(鱼='让编程改变',书='读嘟嘟',笔='写写写')
print(dict2) print (' ')
print ('-------------创建字典的方法三-------------------')
dict3 =dict((('f',70),('i',50),('s',111),('h',104)))
print(dict3) print(' ')
print('------------------------字典增加-----------------')
dict1['yyy'] = '追加字典'
print(dict1) print(' ')
print('------------------------字典修改-----------------')
dict2['鱼'] = '修改字典'
print(dict2) print(' ')
print('------------------------字典删除方法壹-----------')
dict1.pop('num3')
print(dict1) print(' ')
print('-----------py通用方法---字典删除方法二-----------')
del dict1['num4']
print(dict1) print(' ')
print('------------字典删除方法三随机删除一个---------')
dict1.popitem()
print(dict1) print(' ')
print('------------------字典查找方法壹返回True---------')
'num2' in dict1
print('num2' in dict1) print(' ')
print('---------------字典查找方法二----安全获取的方法--')
cz = dict1.get("num2")
print(cz) print(' ')
print('------------------字典查找方法三-----------------')
dict1["num2"]
print(dict1["num2"]) print ('如果一个key不存在,就报错,get不会,不存在只返回None') print(' ')
print(' ')

字典的用法

 #多级字典嵌套及操作
av_catalog = {
"欧美":{
"www.youporn.com": ["很多免费的,世界最大的","质量一般"],
"www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"],
"letmedothis.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],
"x-aryrtyrtt.com": ["质量很高,真的很高","全部收费,屌比请绕过"]
},
"日韩":{
"tokyo-hottuiyui": ["质量怎样不清楚","听说是收费的"]
},
"大陆":{
"1024hkhkhkhkhkh": ["全部免费,真好,好人一生平安","服务器在国外,慢"]
}
} av_catalog["大陆"][""][1] += ",可以用爬虫爬下来" print(av_catalog["大陆"][""])
#ouput
['全部免费,真好,好人一生平安', '服务器在国外,慢,可以用爬虫爬下来']

多级字典嵌套及操作

 #以下代码复制到python(3.6.2rc2)下 按F5 可以正常执行,对比学习。QQ:124111294欢迎
#字典的其它姿势 #values 打印不包括keys所有的值
info.values()
dict_values(['LongZe Luola', 'XiaoZe Maliya']) #keys 打印所有keys的值
info.keys()
dict_keys(['stu1102', 'stu1103']) #setdefault 创建一个新的值,寻找某值,寻找不到创建
info.setdefault("stu1106","Alex")
'Alex'
info
{'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'}
info.setdefault("stu1102","龙泽萝拉")
'LongZe Luola'
info
{'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'} #update 合并两字典,交叉就覆盖,没有就添加。
info
{'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'}
b = {1:2,3:4, "stu1102":"龙泽萝拉"}
info.update(b)
info
{'stu1102': '龙泽萝拉', 1: 2, 3: 4, 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'} #items 字典转成列表
info.items()
dict_items([('stu1102', '龙泽萝拉'), (1, 2), (3, 4), ('stu1103', 'XiaoZe Maliya'), ('stu1106', 'Alex')]) #通过一个列表生成默认dict,有个没办法解释的坑,少用吧这个
#初始一个新的字典,每个KEY用同一个值<值等于浅COPY,类似快捷方式>
dict.fromkeys([1,2,3],'testd')
{1: 'testd', 2: 'testd', 3: 'testd'}

字典的其它姿势

 #以下代码复制到python(3.6.2rc2)下 按F5 可以正常执行,对比学习。QQ:124111294欢迎
#循环dict<字典> #方法1 #通过key寻找打印
for key in info:
print(key,info[key]) #方法2 #把字典转成列表,然后打印列表里的('k','v')
for k,v in info.items(): #会先把dict转成list,数据大时莫用
print(k,v)

循环dict<字典>

python第五天 字典的更多相关文章

  1. python基础五之字典

    python数据的可变性 通过数据的可变性,可将数据分为可变数据类型和不可变数据类型. 可变数据类型:list,dict (不可哈希) 不可变数据类型:元祖,bool,int,str (可哈希) py ...

  2. python 中 五种字典(dict)的遍历方法,实验法比较性能。

    1 .背景: 想知道5种遍历方法,并且知道从性能角度考虑,使用哪种. 2.结论: 使用这种方式: for key,val in AutoDict.iteritems(): temp = "% ...

  3. Python第五章__模块介绍,常用内置模块

    Python第五章__模块介绍,常用内置模块 欢迎加入Linux_Python学习群  群号:478616847 目录: 模块与导入介绍 包的介绍 time &datetime模块 rando ...

  4. Python第五天 文件访问 for循环访问文件 while循环访问文件 字符串的startswith函数和split函数 linecache模块

    Python第五天   文件访问    for循环访问文件    while循环访问文件   字符串的startswith函数和split函数  linecache模块 目录 Pycharm使用技巧( ...

  5. Python3基本数据类型(五、字典)

    一.定义 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号中: dic = {key: ...

  6. 简学Python第五章__模块介绍,常用内置模块

    Python第五章__模块介绍,常用内置模块 欢迎加入Linux_Python学习群  群号:478616847 目录: 模块与导入介绍 包的介绍 time &datetime模块 rando ...

  7. 孤荷凌寒自学python第五十九天尝试使用python来读访问远端MongoDb数据服务

    孤荷凌寒自学python第五十九天尝试使用python来读访问远端MongoDb数据服务 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第五天.今天的感觉是,mongoDB数 ...

  8. 孤荷凌寒自学python第五十六天通过compass客户端和mongodb shell 命令来连接远端MongoDb数据库

    孤荷凌寒自学python第五十六天通过compass客户端和mongodb shell 命令来连接远端MongoDb数据库 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第二 ...

  9. 孤荷凌寒自学python第五十四天使用python来删除Firebase数据库中的文档

    孤荷凌寒自学python第五十四天使用python来删除Firebase数据库中的文档 (完整学习过程屏幕记录视频地址在文末) 今天继续研究Firebase数据库,利用google免费提供的这个数据库 ...

随机推荐

  1. IDEA内置git功能的使用教程

    IDEA内置git功能的使用教程 IDEA git  IDEA被公认为是最好的java开发工具,除了在代码助手.代码提示.重构工具等方面有比较好的支持,还在各类版本控制工具(git.tfs.svn.g ...

  2. Mysql数据库操作命令行小结

    -- 创建数据库 create database python_test_1 charset=utf8; -- 使用数据库 use python_test_1; -- students表 create ...

  3. Xamarin.Android 调用原生的Jar包

    我们有时候会从Android原生开发(Java)转移到Xamarin.Android开发时,需要将过去写好的Android Class Library直接嵌入到Xamarin.Android底下使用, ...

  4. UFLDL 教程学习笔记(三)自编码与稀疏性

    UFLDL(Unsupervised Feature Learning and Deep Learning)Tutorial 是由 Stanford 大学的 Andrew Ng 教授及其团队编写的一套 ...

  5. ACM学习<二>

    穷举算法思想:     一句话:就是从所有可能的情况,搜索出正确的答案. 步骤:     1.对于一种可能的情况,计算其结果.     2.判断结果是否满足,YES计算下一个,no继续步骤1,然后判断 ...

  6. C++学习总结(2)

    1.const指针 指向常量的指针变量,其一般形式为 "const 类型名 * 指针变量名 " . 如下: int a=12,b=15; const int *p=&a; ...

  7. Scrollanim – CSS3 & JavaScript 创建滚动动画

    Scrollanim 是结合 CSS3 和 JavaScript 来创建令人惊叹的滚动动画的开源库. Scrolanim 支持在页面上的所有可用的元素的位置.有很多的自定义参数可以配置使用,构建出精彩 ...

  8. python argparse(参数解析模块)

    这是一个参数解析,可以用它快捷的为你的程序生成参数相关功能 import argparse(导入程序参数模块) # 创建argparse对象,并将产品简要说明加入show = '程序说明' ===&g ...

  9. [转]Angular 2 / 4 / 5 not working in IE11

    本文转自:https://stackoverflow.com/questions/35140718/angular-2-4-5-not-working-in-ie11/47777695#4777769 ...

  10. 为 Html 5 和 CSS 3.0 而生——Modernizr的介绍和使用

    传统浏览器目前不会被完全取代,令你难以将最新的 CSS3 或 HTML5 功能嵌入你的网站. Modernizr 正是为解决这一难题应运而生,作为一个开源的 JavaScript 库,Moderniz ...