日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
8個(gè)超好用的Python內(nèi)置函數(shù),提升效率必備

python中有許多內(nèi)置函數(shù),不像print那么廣為人知,但它們卻異常的強(qiáng)大,用好了可以大大提高代碼效率。

創(chuàng)新互聯(lián)公司成立與2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元蘇尼特右做網(wǎng)站,已為上家服務(wù),為蘇尼特右各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108

這次來(lái)梳理下8個(gè)好用的python內(nèi)置函數(shù)。

1、set()

當(dāng)需要對(duì)一個(gè)列表進(jìn)行去重操作的時(shí)候,set()函數(shù)就派上用場(chǎng)了。

 
 
 
  1. obj = ['a','b','c','b','a'] 
  2. print(set(obj)) 
  3. # 輸出:{'b', 'c', 'a'} 

set([iterable])用于創(chuàng)建一個(gè)集合,集合里的元素是無(wú)序且不重復(fù)的

集合對(duì)象創(chuàng)建后,還能使用并集、交集、差集功能。

 
 
 
  1. A = set('hello') 
  2. B = set('world') 
  3.  
  4. A.union(B) # 并集,輸出:{'d', 'e', 'h', 'l', 'o', 'r', 'w'} 
  5. A.intersection(B) # 交集,輸出:{'l', 'o'} 
  6. A.difference(B) # 差集,輸出:{'d', 'r', 'w'} 

2、eval()

之前有人問(wèn)如何用python寫(xiě)一個(gè)四則運(yùn)算器,輸入字符串公式,直接產(chǎn)生結(jié)果。

用eval()來(lái)做就很簡(jiǎn)單:

eval(str_expression)作用是將字符串轉(zhuǎn)換成表達(dá)式,并且執(zhí)行。

 
 
 
  1. a = eval('[1,2,3]') 
  2. print(type(a)) 
  3. # 輸出: 
  4.  
  5. b = eval('max([2,4,5])') 
  6. print(b) 
  7. # 輸出: 5 

3、sorted()

在處理數(shù)據(jù)過(guò)程中,我們經(jīng)常會(huì)用到排序操作,比如將列表、字典、元組里面的元素正/倒排序。

這時(shí)候就需要用到sorted() ,它可以對(duì)任何可迭代對(duì)象進(jìn)行排序,并返回列表。

對(duì)列表升序操作:

 
 
 
  1. a = sorted([2,4,3,7,1,9]) 
  2. print(a) 
  3. # 輸出:[1, 2, 3, 4, 7, 9] 

對(duì)元組倒序操作:

 
 
 
  1. sorted((4,1,9,6),reverse=True) 
  2. print(a) 
  3. # 輸出:[9, 6, 4, 1] 

使用參數(shù):key,根據(jù)自定義規(guī)則,按字符串長(zhǎng)度來(lái)排序:

 
 
 
  1. chars = ['apple','watermelon','pear','banana'] 
  2. a = sorted(chars,key=lambda x:len(x)) 
  3. print(a) 
  4. # 輸出:['pear', 'apple', 'banana', 'watermelon'] 

根據(jù)自定義規(guī)則,對(duì)元組構(gòu)成的列表進(jìn)行排序:

 
 
 
  1. tuple_list = [('A', 1,5), ('B', 3,2), ('C', 2,6)] 
  2. # key=lambda x: x[1]中可以任意選定x中可選的位置進(jìn)行排序 
  3. a = sorted(tuple_list, key=lambda x: x[1])  
  4. print(a) 
  5. # 輸出:[('A', 1, 5), ('C', 2, 6), ('B', 3, 2)] 

4、reversed()

如果需要對(duì)序列的元素進(jìn)行反轉(zhuǎn)操作,reversed()函數(shù)能幫到你。

reversed()接受一個(gè)序列,將序列里的元素反轉(zhuǎn),并最終返回迭代器。

 
 
 
  1. a = reversed('abcde') 
  2. print(list(a)) 
  3. # 輸出:['e', 'd', 'c', 'b', 'a'] 
  4.  
  5. b = reversed([2,3,4,5]) 
  6. print(list(b)) 
  7. # 輸出:[5, 4, 3, 2] 

5、map()

做文本處理的時(shí)候,假如要對(duì)序列里的每個(gè)單詞進(jìn)行大寫(xiě)轉(zhuǎn)化操作。

這個(gè)時(shí)候就可以使用map()函數(shù)。

 
 
 
  1. chars = ['apple','watermelon','pear','banana'] 
  2. a = map(lambda x:x.upper(),chars) 
  3. print(list(a)) 
  4. # 輸出:['APPLE', 'WATERMELON', 'PEAR', 'BANANA'] 

map()會(huì)根據(jù)提供的函數(shù),對(duì)指定的序列做映射,最終返回迭代器。

也就是說(shuō)map()函數(shù)會(huì)把序列里的每一個(gè)元素用指定的方法加工一遍,最終返回給你加工好的序列。

舉個(gè)例子,對(duì)列表里的每個(gè)數(shù)字作平方處理:

 
 
 
  1. nums = [1,2,3,4] 
  2. a = map(lambda x:x*x,nums) 
  3. print(list(a)) 
  4. # 輸出:[1, 4, 9, 16] 

6、reduce()

前面說(shuō)到對(duì)列表里的每個(gè)數(shù)字作平方處理,用map()函數(shù)。

那我想將列表里的每個(gè)元素相乘,該怎么做呢?

這時(shí)候用到reduce()函數(shù)。

 
 
 
  1. from functools import reduce 
  2. nums = [1,2,3,4] 
  3. a = reduce(lambda x,y:x*y,nums) 
  4. print(a) 
  5. # 輸出:24 

reduce()會(huì)對(duì)參數(shù)序列中元素進(jìn)行累積。

第一、第二個(gè)元素先進(jìn)行函數(shù)操作,生成的結(jié)果再和第三個(gè)元素進(jìn)行函數(shù)操作,以此類推,最終生成所有元素累積運(yùn)算的結(jié)果。

再舉個(gè)例子,將字母連接成字符串。

 
 
 
  1. from functools import reduce 
  2. chars = ['a','p','p','l','e'] 
  3. a = reduce(lambda x,y:x+y,chars) 
  4. print(a) 
  5. # 輸出:apple 

你可能已經(jīng)注意到,reduce()函數(shù)在python3里已經(jīng)不再是內(nèi)置函數(shù),而是遷移到了functools模塊中。

這里把reduce()函數(shù)拎出來(lái)講,是因?yàn)樗匾恕?/p>

7、filter()

一些數(shù)字組成的列表,要把其中偶數(shù)去掉,該怎么做呢?

 
 
 
  1. nums = [1,2,3,4,5,6] 
  2. a = filter(lambda x:x%2!=0,nums) 
  3. print(list(a)) 
  4. # 輸出:[1,3,5] 

filter()函數(shù)輕松完成了任務(wù),它用于過(guò)濾序列,過(guò)濾掉不符合條件的元素,返回一個(gè)迭代器對(duì)象。

filter()函數(shù)和map()、reduce()函數(shù)類似,都是將序列里的每個(gè)元素映射到函數(shù),最終返回結(jié)果。

我們?cè)僭囋?,如何從許多單詞里挑出包含字母w的單詞。

 
 
 
  1. chars = chars = ['apple','watermelon','pear','banana'] 
  2. a = filter(lambda x:'w' in x,chars) 
  3. print(list(a)) 
  4. # 輸出:['watermelon'] 

8、enumerate()

這樣一個(gè)場(chǎng)景,同時(shí)打印出序列里每一個(gè)元素和它對(duì)應(yīng)的順序號(hào),我們用enumerate()函數(shù)做做看。

 
 
 
  1. chars = ['apple','watermelon','pear','banana'] 
  2. for i,j in enumerate(chars): 
  3.     print(i,j) 
  4.  
  5. ''' 
  6. 輸出: 
  7. 0 apple 
  8. 1 watermelon 
  9. 2 pear 
  10. 3 banana 
  11. ''' 

enumerate翻譯過(guò)來(lái)是枚舉、列舉的意思,所以說(shuō)enumerate()函數(shù)用于對(duì)序列里的元素進(jìn)行順序標(biāo)注,返回(元素、索引)組成的迭代器。

再舉個(gè)例子說(shuō)明,對(duì)字符串進(jìn)行標(biāo)注,返回每個(gè)字母和其索引。

 
 
 
  1. a = enumerate('abcd') 
  2. print(list(a)) 
  3. # 輸出:[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd')] 

網(wǎng)站欄目:8個(gè)超好用的Python內(nèi)置函數(shù),提升效率必備
網(wǎng)頁(yè)鏈接:http://m.5511xx.com/article/copdjoc.html