好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Python進階之高級用法詳細總結

Python進階之高級用法詳細總結

熱門標簽:哈爾濱ai外呼系統定制 唐山智能外呼系統一般多少錢 海南400電話如何申請 激戰2地圖標注 公司電話機器人 白銀外呼系統 陜西金融外呼系統 騰訊外呼線路 廣告地圖標注app

一、Lambda表達式

Lambda表達式又被稱之為匿名函數
格式
lambda 參數列表:函數體

def add(x,y): 
	return x+y 
print(add(3,4))
#上面的函數可以寫成Lambda函數
add_lambda=lambda x,y:x+y 
add_lambda(3,4)

二、map函數

函數就是有輸入和輸出,map的輸入和輸出對應關系如下圖所示:

就是要把一個可迭代的對象按某個規則映射到新的對象上。
因此map函數要有兩個參數,一個是映射規則,一個是可迭代對象。

list1=[1,2,3,4,5]
r=map(lambda x:x+x,list)
print(list1(r))

結果:[2,4,6,8,10]

m1=map(lambda x,y:x*x+y,[1,2,3,4,5],[1,2,3,4,5])
print(list(ml))

結果:[2,6,12,20,30]

三、filter函數

filter的輸入和輸出對應關系如下圖所示:

def is_not_none(s): 
	return s and len(s.strip())>0
list2=['','','hello','xxxx', None,'ai']
result=filter(is_not_none, list2)
print(list(result))

結果:[‘hello',‘xxxx',‘ai']

四、reduce函數

from functools import reduce
f=lambda x,y:x+y x=reduce(f,[1,2,3,4,5])
print(r)

結果:15=1+2+3+4+5
相當于每一次計算都是基于前一次計算的結果:

還可以為reduce計算添加初始值:

from functools import reduce
f=lambda x,y:x+y x=reduce(f,[1,2,3,4,5],10)
print(r)

結果:25=10+1+2+3+4+5

五、三大推導式

5.1 列表推導式

list1=[1,2,3,4,5,6]
f=map(lambda x:x+x,list1)
print(list(f))
list2=[i+i for i in list1]
print(list2)
list3=[i**3 for i in list1]
print(list3)
#篩選列表的例子
list4=[i*4 for i in list1 if i>3]
print(list4)
#結果
[2,4,6,8,10,12]
[2,4,6,8,10,12]
[1,8,27,64,125,216]
[16,25,36]

5.2 集合推導式

直接把上面代碼copy下來,然后把列表改成集合

list1={1,2,3,4,5,6}

list2={i+i for i in list1}
print(list2)
list3={i**3 for i in list1}
print(list3)
#篩選列表的例子
list4={i*4 for i in list1 if i>3}
print(list4)
#結果

{2, 4, 6, 8, 10, 12}
{64, 1, 8, 216, 27, 125}#這里是亂序的
{16, 24, 20}

5.3 字典推導式

s={
"zhangsan":20,
"lisi":15,
"wangwu":31
}
#拿出所有的key,并變成列表
s_key=[ key for key, value in s.items()]
print(s_key)
#結果
['zhangsan','lisi','wangwu']

# 交換key和value位置,注意冒號的位置
s1={ value: key for key, value in s.items()}
print(s1)
#結果
{20:'zhangsan',15:'1isi',31:'wangwu'}

s2={ key: value for key, value in s.items() if key=="1isi"}
print(s2)
#結果
{"lisi":15}

六、閉包

閉包:一個返回值是函數的函數

import time 
def runtime(): 
	def now_time(): 
		print(time.time())
	return now_time #返回值是函數名字
f=runtime()#f就被賦值為一個函數now_time()了
f()#運行f相當于運行now_time()

再來看一個帶參數的例子:
假設有一個csv文件,內容有三行,具體如下:

a,b,c,d,e
1,2,3,4,5
6,7,8,9,10

def make_filter(keep):# keep=8
	def the_filter(file_name): 
		file=open(file name)#打開文件
		lines=file.readlines()#按行讀取文件
		file.close()#關閉文件
		filter_doc=[i for i in lines if keep in i]#過濾文件內容
		return filter_doc 
	return the_filter

filter1=make_filter("8")#這一行調用了make_filter函數,且把8做為參數傳給了keep,接受了the_filter函數作為返回值
#這里的filter1等于函數the_filter
filter_result=filter1("data.csv")#把文件名data.csv作為參數傳給了函數the_filter
print(filter_result)
#結果
['6,7,8,9,10']

七、裝飾器、語法糖、注解

# 這是獲取函數開始運行時間的函數
import time 
def runtime(func): 
	def get_time(): 
		print(time.time())
		func()# run被調用	
	return get_time
@runtime
def run()
	print('student run')

#運行
run()

#結果
當前時間
student run	

由于有裝飾器@runtime的存在,會把run這個函數作為參數丟到runtime(func)里面去,如果調整打印時間代碼的位置會有不同結果:

# 這是獲取函數結束運行時間的函數
import time 
def runtime(func): 
	def get_time(): 
		func()# run被調用	
		print(time.time())		
	return get_time
@runtime
def run()
	print('student run')

#運行
run()

#結果
student run	
當前時間

這里還要注意,這里還用到了閉包的概念,在運行run函數的時候,調用的實際上是get_time函數。

對于多個參數的函數如何調用,看下面例子

#有一個參數
import time 
def runtime(func): 
	def get_time(i): 
		func(i)# run被調用	
		print(time.time())		
	return get_time
@runtime
def run(i)
	print('student run')
#運行
run(1)
#有兩個參數
import time 
def runtime(func): 
	def get_time(i,j): 
		func(i,j)# run被調用	
		print(time.time())		
	return get_time
@runtime
def run(i,j)
	print('student run')
#運行
run(1,2)

可以發現,這樣寫對于函數的多態不是很好,因此可以寫為:

#自動適配參數
import time 
def runtime(func): 
	def get_time(*arg): 
		func(*arg)# run被調用	
		print(time.time())		
	return get_time
@runtime
def run(i)
	print('student1 run')

@runtime
def run(i,j)
	print('student2 run')
#運行
run(1)
run(1,2)

再次進行擴展,更為普適的寫法,可以解決傳入類似i=4的關鍵字參數寫法:

#自動適配參數
import time 
def runtime(func): 
	def get_time(*arg,**kwarg): 
		func(*arg,**kwarg)# run被調用	
		print(time.time())		
	return get_time
@runtime
def run(i)
	print('student1 run')

@runtime
def run(*arg,**kwarg)
	print('student2 run')

@runtime
def run()
	print('no param run')
#運行
run(1)
run(1,2,j=4)
run()

到此這篇關于Python進階之高級用法詳細總結的文章就介紹到這了,更多相關Python高級用法內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 淺談對Python變量的一些認識理解
  • 教你利用Python破解ZIP或RAR文件密碼
  • Python協程asyncio模塊的演變及高級用法
  • python基于socketserver實現并發,驗證客戶端的合法性
  • python3 如何使用 goto 跳轉執行到指定代碼行
  • 如何用python抓取B站數據
  • python print()函數的end參數和sep參數的用法說明
  • python實現某考試系統生成word試卷
  • 解讀python基于netconf協議獲取網元的數據

標簽:黔西 鷹潭 四川 常德 黑龍江 惠州 益陽 上海

巨人網絡通訊聲明:本文標題《Python進階之高級用法詳細總結》,本文關鍵詞  Python,進階,之,高級,用法,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python進階之高級用法詳細總結》相關的同類信息!
  • 本頁收集關于Python進階之高級用法詳細總結的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 精品久久久久久中文字幕人妻最新| 99国产亚洲精品久久久久久| 丝袜另类卡通动漫校园激情| 特黄AAAAA免费A片毛多水多| 男女一进一出无遮挡黄 | 国产精品久久天天影视| 床震吻胸摸腿娇喘的视频大全| 国产精品喷潮抽搐无码动漫| 欧美18—19性高清HD4K| 长篇yin乱岳500篇小说| 亚色下载| XEVA官方网页入口| 总攻cao烂双性美人h| 18jack无码精品动漫| 国产精品福利在线观看秒播| 女生胸部无遮挡| 爱的迷宫| 久久久91人妻无码精品蜜桃HD| 嫩草玖玖玖精品视频| 日本一本a免费不卡 视频| 黄蓉淫史| 337p粉嫩大胆噜噜噜| 一二三四在线观看免费中文在线观看| a一级一色一情| 精品一区二区三区在线视频| 尤物国产精品午夜福利视频| 欧美日韩中文一区二区三区| 上流社会韩剧免费观看完整版| 攵女乱H系列合集| 啊啊嗯嗯哦哦| 在线观看免费黄色片| 吃清纯校花粉嫩的奶头| 精品无码亚洲一区二区| 国产精品扒开腿做爽爽爽软件| 久久er精品热线免费| 性xx十八spa按摩| 丰满双乳峰白嫩少妇www91| 狠狠综合久久久久尤物丿| 人类是怎么交流配的视频| 特级欧美AAAAAA片黑白配| 午夜三级国产精品理论三级|