day_01:__all__、__init__、推导式
参考链接:http://47.112.233.130:8889/#/runLog
1.__all__:
1)如在test.py中有 add、sub方法,其中只有add方法被包裹起来了(__all__:["add"])
2)在第二个py文件中调用 from test.py import *后,只能使用add方法,调用sub方法会提示不可调用(会爆NameError)
2.__init__:、
可以通过在__init__中先把方法引入进来,这样方便导包
3.
PEP 257规范
https://github.com/qiuxiang/pep/blob/master/peps/257.md
4.命名元组
5.字典推到式
注意三目运算符
前面是赋值,后面是过滤数据的
li2 = [True if i%2 == 0 else False for i in range(100)]
print(li2)
练习题目:
1、通过列表推导式完成下面数据类型转换
现在有以下数据, li1 = ["{'a':11,'b':2}","[11,22,33,44]"]
需要转换为以下格式: li1 = [{'a':11,'b':2},[11,22,33,44]]
2、 Names=['python','java','php','c','c++','django','unittest','pytest','pymysql'],请通过列表推导式,获取names中字符串长度大于4的元素
3、通过字典推导式,颠倒字典的键名和值:将{'py': "python09", 'java': "java09"} 转换为:{'python09': "py", 'java09': "java"}
4、将字典{'x': 'A', 'y': 'B', 'z': 'C' } 通过推导式转换为:['x=A','y=B','z=C']
"""
# 第一题
li1 = ["{'a':11,'b':2}", "[11,22,33,44]"]
res1 = [eval(i) for i in li1]
# 第二题
Names = ['python', 'java', 'php', 'c', 'c++', 'django', 'unittest', 'pytest', 'pymysql']
res2 = [i for i in Names if len(i) > 4]
# 第三题
dic3 = {'py': "python09", 'java': "java09"}
res3 = {v: k for k, v in dic3.items()}
# 第四题
dic4 = {'x': 'A', 'y': 'B', 'z': 'C'}
res4 = [f'{k}={v}' for k, v in dic4.items()]
if __name__ == '__main__':
# print(res1)
# print(res2)
# print(res3)
# print(res4)
pass
#
# for k, v in dic4.items():
# # print(i)
# # k, v = i
# print(k)
# print(v)