13.pythonic与python杂记
导言
产品是打磨出来的
用字典映射代替switch case 语句
字典内value可以传入函数!!!,但是需要注意函数是可调用的。
day = 2def get_return_wednesday():
return "wednesday"switcher = {
0: "Sunday",
1: "Monday",
2: "Tuesday",
3: get_return_wednesday
}dayName = switcher.get(day, "Saturday")() \
if callable(switcher.get(day, "Saturday")) \
else switcher.get(day, "Saturday")# 没有day key也不会报错,会返回默认值”Saturday“
print(dayName)
列表推导式 通过一个一致的集合、列表生成一个新的集合、列表
a = [1, 2, 3, 4, 5, 6, 7, 8]# for循环以及 map 都可以完成该功能
print([x**2 for x in a if i >=5])
如果采用推导式,能更灵活地在单语句中添加过滤条件等.map 则需要 filter 组合出该功能
列表推导式并不是只能推导列表,set也可以被推导,如果采用小括号,则编程生成器,变成惰性的迭代器。
字典如何编写列表推导式 翻转字典
b = {value: key for key, value in students.items}
None 1.类型上为空类型 Nonetype
2.取值上为空
if not a: 和 if a is None:是有区别的
因为 a 可能是空的字符串、列表、字典等,此时 not a 为真, a is None 为假。
判空 直接 if a: 或者 if not a:
None表示不存在,False表示真假。
对象存在并不一定是True
class Test():
def __len__(self):
return 0test = Test()if test:
print("S")
else:
print("F")
对于自定义的对象,即使存在也可能返回False。
决定于类的
__len__
和__bool__
方法__len__
和__bool__
内置方法
影响自定义对象的最终bool取值。如果两个方法都没定义,类的实例bool值返回True
如果单个len返回0, bool返回False,返回其他数字,返回False。不能返回非整数的其他类型。能返回bool值。
判断对象的True or False
如果加入了
__bool__
方法,类的实例bool值将由该方法决定。该方法只能返回True 或者 False判断对象长度,也会调用对象的
__len__
内置函数【13.pythonic与python杂记】逻辑运算符
Map/Reduce百科:
https://baike.baidu.com/item/MapReduce/133425?fr=aladdin
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- Docker应用:容器间通信与Mariadb数据库主从复制
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 第326天
- Shell-Bash变量与运算符
- python学习之|python学习之 实现QQ自动发送消息
- 逻辑回归的理解与python示例
- Guava|Guava RateLimiter与限流算法
- python自定义封装带颜色的logging模块
- 我和你之前距离