導(dǎo)言
產(chǎn)品是打磨出來的
用字典映射代替switch case 語句
字典內(nèi)value可以傳入函數(shù)!P⒚啊!拟杉,但是需要注意函數(shù)是可調(diào)用的庄涡。
day = 2
def 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也不會報錯,會返回默認(rèn)值”Saturday“
print(dayName)
列表推導(dǎo)式
通過一個一致的集合捣域、列表生成一個新的集合啼染、列表
a = [1, 2, 3, 4, 5, 6, 7, 8]
# for循環(huán) 以及 map 都可以完成該功能
print([x**2 for x in a if i >=5])
如果采用推導(dǎo)式宴合,能更靈活地在單語句中添加過濾條件等.map 則需要 filter 組合出該功能
列表推導(dǎo)式并不是只能推導(dǎo)列表焕梅,set也可以被推導(dǎo),如果采用小括號卦洽,則編程生成器贞言,變成惰性的迭代器。
字典如何編寫列表推導(dǎo)式
翻轉(zhuǎn)字典
b = {value: key for key, value in students.items}
None
1.類型上為空類型 Nonetype
2.取值上為空
if not a: 和 if a is None:是有區(qū)別的
因?yàn)?a 可能是空的字符串阀蒂、列表该窗、字典等,此時 not a 為真蚤霞, a is None 為假酗失。
判空 直接 if a: 或者 if not a:
None表示不存在,F(xiàn)alse表示真假昧绣。
對象存在并不一定是True
class Test():
def __len__(self):
return 0
test = Test()
if test:
print("S")
else:
print("F")
對于自定義的對象规肴,即使存在也可能返回False。
決定于類的__len__
和__bool__
方法
__len__
和__bool__
內(nèi)置方法
影響自定義對象的最終bool取值夜畴。
如果兩個方法都沒定義拖刃,類的實(shí)例bool值返回True
如果單個len返回0, bool返回False,返回其他數(shù)字贪绘,返回False兑牡。不能返回非整數(shù)的其他類型。能返回bool值税灌。
判斷對象的True or False
如果加入了__bool__
方法均函,類的實(shí)例bool值將由該方法決定亿虽。該方法只能返回True 或者 False
判斷對象長度,也會調(diào)用對象的__len__
內(nèi)置函數(shù)
邏輯運(yùn)算符
Map/Reduce百科:
https://baike.baidu.com/item/MapReduce/133425?fr=aladdin