一 交换两个变量 传统写法:
temp = a
a = b
b = temp pythonic写法:
a, b = b, a
二 枚举enumerate 传统写法:
alist = ["老胡", "老王", "老李", "老赵"]
aDict = {}
for i in range(len(alist)):
aDict[alist] = i pythonic写法:
alist = ["老胡", "老王", "老李", "老赵"]
aDict = {}
for index, item in enumerate(alist):
aDict[item] = index
三 推导式
Python中的推导式分为三种列表推导式,字典推导式,集合推导式
列表推导式:
evenList = [i for i in range(0,101) if i % 2 == 0]
字典推导式:
ADict = {
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
BDict = {value: key for key, value in ADict.items()}
集合推导式和列表一样
五 使用装饰器
def doExtraJob(func):
def wrap():
func()
print("****do extra job****")
return wrap
@doExtraJob
def partA():
print("----do A job----")
@doExtraJob
def partB():
print("----do B job----")
@doExtraJob
def partC():
print("----do C job----")
if __name__ == '__main__':
partA()
partB()
partC()
六 else语句
大部分人只知道else语句和if语句一起使用,但是你们知道吗else语句也可以和for语句,while语句,try语句一起使用
设想一个场景,你在对一个内部数据未知的列表进行循环时(不论是for还是while),你设置了一个遇到偶数就break的语句,倘若数组里不含偶数就输出奇数列表字样. 传统方法:
aList = [1, 3, 5, 7, 9]
flag = True
for i in aList:
if i % 2 == 0:
flag = False
break
if flag:
print("奇数列表") pythonic:
aList = [1, 3, 5, 7, 9]
for i in aList:
if i % 2 == 0:
break
else:
print("奇数列表")