python入門與進階篇(八)之Pythonic與Python雜記
用字典代替switch case語句
#用字典代替switch case語句
day=0
def get_Monday():
# 函式裡還可以寫一些業務邏輯
return 'Monday'
def get_Tuesday():
return 'Tuesday'
def get_Wednesday():
return 'Wednesday'
def get_default():
return 'unknow'
switcher={
0:get_Monday, # value 可以為函式 也可以為具體的值 字串等
1:get_Tuesday,
2:get_Wednesday
}
# get(需要獲取的value的key,default的返回值)方法來模擬switch case 中default的情況
r=switcher.get(day,get_default)()
print(r)
列表推導式
# 列表推導式 可以代替map
a=[1,2,3,4,5]
# 有條件的推導 推薦使用列表推導式代替map 求立方
b=[i**3 for i in a if i>2]
# [27, 64, 125]
print(b)
#set 集合也可以被推導
c={1,2,3}
d={j**3 for j in c}
# {8, 1, 27}
print(d)
# 字典也可以列表推導式
student={
'蕭炎':22,
'蕭薰兒':18,
'小藥仙':20
}
# 獲取字典key值 ['蕭炎', '蕭薰兒', '小藥仙']
b=[key for key,value in student.items()]
print(b)
# 顛倒字典key value {22: '蕭炎', 18: '蕭薰兒', 20: '小藥仙'}
c={value:key for key,value in student.items()}
print(c)
#不推薦使用元組的形式 會返回可遍歷的generator <generator object <genexpr> at 0x0000000001DF92A0>
d=(key for key,value in student.items())
print(d)
#遍歷的generator
for i in d:
print(i) #蕭炎 蕭薰兒 小藥仙
None 空:
不等同於空字元、空列表、0、False
#None也是一個物件 表示不存在
#<class 'NoneType'>
print(type(None))
# False、''、[]、None返回False
判空操作 if a if not a
* 物件存在並不一定返回True
# 物件存在並不一定返回True
class Test():
def __bool__(self):
# 只能返回bool值
return False
def __len__(self):
# 可返回int 和bool值
return 2
# len()呼叫的是內建方法 __len__
print( len(Test())) #2
'''
1.有__bool__()方法時 bool(Test())執行的是內建__bool__()
2.無__bool__()方法且有__len__()方法時, bool(Test())執行的是內建__len__()
3.無__bool__()方法且無__len__()方法時,bool(Test())返回True
'''
print( bool(Test()) ) #False
相關文章
- python入門與進階篇(七)之原生爬蟲Python爬蟲
- python入門與進階篇(六)之高階語法及用法Python
- python3入門與進階(二)Python
- Python 爬蟲從入門到進階之路(八)Python爬蟲
- Python爬蟲進階之JS逆向入門Python爬蟲JS
- Python之禪(Pythonic)Python
- Spark修煉之道(進階篇)——Spark入門到精通:第八節 Spark SQL與DataFrame(一)SparkSQL
- Python學習筆記(進階篇一)Python筆記
- Python 從入門到進階之路(七)Python
- Python 從入門到進階之路(三)Python
- Python 從入門到進階之路(四)Python
- Python 從入門到進階之路(五)Python
- Python入門進階推薦書單Python
- python進階(一)變數與資料型別、python之禪Python變數資料型別
- React 從入門到進階之路(八)React
- python網路進階篇Python
- Python進階:切片的誤區與高階用法Python
- 學習筆記|AS入門(八) 元件篇之ContentProvider筆記元件IDE
- python進階(7)--檔案與異常Python
- Python進階:迭代器與迭代器切片Python
- 新手入門 如何快速找到Python進階路線?Python
- Python 爬蟲從入門到進階之路(十六)Python爬蟲
- Python 爬蟲從入門到進階之路(十七)Python爬蟲
- Python 爬蟲從入門到進階之路(十八)Python爬蟲
- Python 爬蟲從入門到進階之路(二)Python爬蟲
- Python 爬蟲從入門到進階之路(三)Python爬蟲
- Python 爬蟲從入門到進階之路(十二)Python爬蟲
- Python 爬蟲從入門到進階之路(十五)Python爬蟲
- Python 爬蟲從入門到進階之路(九)Python爬蟲
- Python 爬蟲從入門到進階之路(十)Python爬蟲
- Python 爬蟲從入門到進階之路(十一)Python爬蟲
- Python 爬蟲從入門到進階之路(六)Python爬蟲
- Python 爬蟲從入門到進階之路(七)Python爬蟲
- python書籍推薦——從入門到進階Python
- vue從入門到進階:指令與事件(二)Vue事件
- Python安裝與Pycharm使用入門PythonPyCharm
- Elm入門實踐(三)——進階篇
- Python爬蟲學習之(二)| urllib進階篇Python爬蟲