Python(十二) Pythonic与Python杂记
2024-08-31 16:08:50
一、导言
二、用字典映射代替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
最新文章
- java cef3 禁止右键菜单项
- flex中下拉框的实现
- iwebshop二次开发
- nil、Nil、NULL和NSNull的区别和联系
- 【社招】来杭州吧,阿里国际UED招前端~~
- (转)http接口测试——Jmeter接口测试实例讲解
- 最大化 AIX 上的 Java 性能,第 5 部分: 参考资料和结论
- MFC的规则DLL与扩展DLL
- 关于android应用--内存的优化
- PHP全栈学习笔记6
- IDEA编译器的常用快捷键
- ISP PIPLINE (四) Demosaic
- 《Spring实战》读书笔记——Spring简介
- CTR常见规则摘录
- bzoj3255 一个关于序列的游戏
- Unity3D游戏制作(三)——移动平台上的角色阴影制作
- java sigar.jar
- 3.insert添加用法
- 如何将tensor的内容输出到文本文件
- [python] can not find app ,module
热门文章
- python基础8(装饰器)
- Linux 磁盘坏道检测和修复
- BZOJ 4236~4247 题解
- 安卓实训第四天--基于HttpClient来完毕数据在server和设备间的交互。
- spark pipeline 例子
- matplotlib 可视化 —— 定制画布风格 Customizing plots with style sheets(plt.style)
- [BZOJ3884] 上帝与集合的正确用法 (欧拉函数)
- [JZOJ3382] [NOIP2013模拟] 七夕祭 解题报告
- <;Three.js>;(第二节)添加长方体
- UVa 208 Firetruck【回溯】