一、导言
二、用字典映射代替switch case语句
 
# 字典代替 switch 语句

# switch ()
# {
# case 0 :
# dayName= 'a';
# break;
# case 1 :
# dayName= 'b';
# break;
# case 2 :
# dayName= 'c';
# break;
# ...
# default :
# dayName= 'none';
# break;
# }
def get_a():
return 'a' def get_b():
return 'b' def get_c():
return 'c' def get_default():
return 'none' day=2
switcher = {
0:get_a,
1:get_b,
2:get_c
} day_name=switcher.get(day, get_default)()
print(day_name) day_name=switcher.get(6, get_default)()
print(day_name) 结果:
c
none
三、列表推导式
 
# 列表推导式(根据一个列表推到一个新的列表)list set dict 都可以被推导

a = [1,2,3,4,5,6,7,8]

b = [i**3 for i in a]
print(b) # [1, 8, 27, 64, 125, 216, 343, 512] b = [i**3 for i in a if i>=5]
print(b) # [125, 216, 343, 512]
list =[y for x in range(5) for y in range(2)]
print(list) # [0, 1, 0, 1, 0, 1, 0, 1, 0, 1]
a = {1,2,3,4,5,6,7,8}

b = {i**3 for i in a}
print(b) # {64, 1, 512, 8, 343, 216, 27, 125}
四、字典如何编写列表推导式
students = {
'一号':100,
'二号':90,
'三号':80
} b = [key for key, value in students.items()]
print(b) # ['一号', '二号', '三号'] b = {value:key for key, value in students.items()}
print(b) # {100: '一号', 90: '二号', 80: '三号'} b = (key for key, value in students.items())
print(b) # <generator object <genexpr> at 0x00000187AB059410>
for x in b:
print(x) # 一号
# 二号
# 三号
五、 iterator与generator
六、 None
# None  空 不等于 空字符串 空列表 0 False

a = ''
b = False
c = [] print(a==None)
print(b==None)
print(c==None)
print(type(None)) # False
# False
# False
# <class 'NoneType'> 判断空
a=[] /func() / '' if a: if not a:
七、对象存在并不一定是True
None 等于 False
class Test():
def __len__(self):
return 0 t = Test()
print(bool(t)) # False class Test1():
pass t = Test1()
print(bool(t)) # True
八、__len__与__bool__内置方法
class Test():
def __len__(self):
return 8
# def __bool__(self):
# return 0 print(len(Test())) #
print(bool(Test())) # True
 
class Test():
def __len__(self):
print('len func')
return 8
def __bool__(self):
print('bool func')
return False print(bool(Test())) # bool func
# False
 

最新文章

  1. java cef3 禁止右键菜单项
  2. flex中下拉框的实现
  3. iwebshop二次开发
  4. nil、Nil、NULL和NSNull的区别和联系
  5. 【社招】来杭州吧,阿里国际UED招前端~~
  6. (转)http接口测试——Jmeter接口测试实例讲解
  7. 最大化 AIX 上的 Java 性能,第 5 部分: 参考资料和结论
  8. MFC的规则DLL与扩展DLL
  9. 关于android应用--内存的优化
  10. PHP全栈学习笔记6
  11. IDEA编译器的常用快捷键
  12. ISP PIPLINE (四) Demosaic
  13. 《Spring实战》读书笔记——Spring简介
  14. CTR常见规则摘录
  15. bzoj3255 一个关于序列的游戏
  16. Unity3D游戏制作(三)——移动平台上的角色阴影制作
  17. java sigar.jar
  18. 3.insert添加用法
  19. 如何将tensor的内容输出到文本文件
  20. [python] can not find app ,module

热门文章

  1. python基础8(装饰器)
  2. Linux 磁盘坏道检测和修复
  3. BZOJ 4236~4247 题解
  4. 安卓实训第四天--基于HttpClient来完毕数据在server和设备间的交互。
  5. spark pipeline 例子
  6. matplotlib 可视化 —— 定制画布风格 Customizing plots with style sheets(plt.style)
  7. [BZOJ3884] 上帝与集合的正确用法 (欧拉函数)
  8. [JZOJ3382] [NOIP2013模拟] 七夕祭 解题报告
  9. &lt;Three.js&gt;(第二节)添加长方体
  10. UVa 208 Firetruck【回溯】