8個超好用的Python內建函式,提公升效率必備

2021-10-11 04:25:54 字數 4965 閱讀 7244

python中有許多內建函式,不像print那麼廣為人知,但它們卻異常的強大,用好了可以大大提高**效率。

這次來梳理下8個好用的python內建函式。

1、set()

當需要對乙個列表進行去重操作的時候,set()函式就派上用場了。

obj =

['a'

,'b'

,'c'

,'b'

,'a'

]print

(set

(obj)

)# 輸出:

set([iterable])用於建立乙個集合,集合裡的元素是無序且不重複的。

集合物件建立後,還能使用並集、交集、差集功能。

a =

set(

'hello'

)b =

set(

'world'

)a.union(b)

# 並集,輸出:

a.intersection(b)

# 交集,輸出:

a.difference(b)

# 差集,輸出:

2、eval()之前有人問如何用python寫乙個四則運算器,輸入字串公式,直接產生結果。

用eval()來做就很簡單:

eval(str_expression)作用是將字串轉換成表示式,並且執行。

'''

'''a =

eval

('[1,2,3]'

)print

(type

(a))

# 輸出:

b =eval

('max([2,4,5])'

)print

(b)# 輸出: 5

3、sorted()在處理資料過程中,我們經常會用到排序操作,比如將列表、字典、元組裡面的元素正/倒排序。

這時候就需要用到sorted() ,它可以對任何可迭代物件進行排序,並返回列表。

對列表公升序操作:

a =

sorted([

2,4,

3,7,

1,9]

)print

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

對元組倒序操作:

sorted((

4,1,

9,6)

,reverse=

true

)print

(a)# 輸出:[9, 6, 4, 1]

使用引數:key,根據自定義規則,按字串長度來排序:

'''

'''chars =[,

'watermelon'

,'pear'

,'banana'

]a =

sorted

(chars,key=

lambda x:

len(x)

)print

(a)

根據自定義規則,對元組構成的列表進行排序:

tuple_list =[(

'a',1,

5),(

'b',3,

2),(

'c',2,

6)]# key=lambda x: x[1]中可以任意選定x中可選的位置進行排序

a =sorted

(tuple_list, key=

lambda x: x[1]

)print

(a)# 輸出:[('a', 1, 5), ('c', 2, 6), ('b', 3, 2)]

4、reversed()如果需要對序列的元素進行反轉操作,reversed()函式能幫到你。

reversed()接受乙個序列,將序列裡的元素反轉,並最終返回迭代器。

'''

'''a =

reversed

('abcde'

)print

(list

(a))

# 輸出:['e', 'd', 'c', 'b', 'a']

b =reversed([

2,3,

4,5]

)print

(list

(b))

# 輸出:[5, 4, 3, 2]

5、map()做文字處理的時候,假如要對序列裡的每個單詞進行大寫轉化操作。

這個時候就可以使用map()函式。

chars =[,

'watermelon'

,'pear'

,'banana'

]a =

map(

lambda x:x.upper(

),chars)

print

(list

(a))

map()會根據提供的函式,對指定的序列做對映,最終返回迭代器。

也就是說map()函式會把序列裡的每乙個元素用指定的方法加工一遍,最終返回給你加工好的序列。

舉個例子,對列表裡的每個數字作平方處理:

nums =[1

,2,3

,4]a =

map(

lambda x:x*x,nums)

print

(list

(a))

# 輸出:[1, 4, 9, 16]

6、reduce()前面說到對列表裡的每個數字作平方處理,用map()函式。

那我想將列表裡的每個元素相乘,該怎麼做呢?

這時候用到reduce()函式。

'''

'''from functools import

reduce

nums =[1

,2,3

,4]a =

reduce

(lambda x,y:x*y,nums)

print

(a)# 輸出:24

reduce()會對引數序列中元素進行累積。

第一、第二個元素先進行函式操作,生成的結果再和第三個元素進行函式操作,以此類推,最終生成所有元素累積運算的結果。

再舉個例子,將字母連線成字串。

from functools import

reduce

chars =

['a'

,'p'

,'p'

,'l'

,'e'

]a =

reduce

(lambda x,y:x+y,chars)

print

(a)

你可能已經注意到,reduce()函式在python3裡已經不再是內建函式,而是遷移到了functools模組中。

這裡把reduce()函式拎出來講,是因為它太重要了。

7、filter()

一些數字組成的列表,要把其中偶數去掉,該怎麼做呢?

nums =[1

,2,3

,4,5

,6]a =

filter

(lambda x:x%2!=

0,nums)

print

(list

(a))

# 輸出:[1,3,5]

filter()函式輕鬆完成了任務,它用於過濾序列,過濾掉不符合條件的元素,返回乙個迭代器物件。

filter()函式和map()、reduce()函式類似,都是將序列裡的每個元素對映到函式,最終返回結果。

我們再試試,如何從許多單詞裡挑出包含字母w的單詞。

'''

'''chars = chars =[,

'watermelon'

,'pear'

,'banana'

]a =

filter

(lambda x:

'w'in x,chars)

print

(list

(a))

# 輸出:['watermelon']

8、enumerate()這樣乙個場景,同時列印出序列裡每乙個元素和它對應的順序號,我們用enumerate()函式做做看。

chars =[,

'watermelon'

,'pear'

,'banana'

]for i,j in

enumerate

(chars)

:print

(i,j)

'''輸出:

1 watermelon

2 pear

3 banana

'''

enumerate翻譯過來是列舉、列舉的意思,所以說enumerate()函式用於對序列裡的元素進行順序標註,返回(元素、索引)組成的迭代器。

再舉個例子說明,對字串進行標註,返回每個字母和其索引。

a =

enumerate

('abcd'

)print

(list

(a))

# 輸出:[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd')]

8個超好用的Python內建函式,提公升效率必備!

python中有許多內建函式,不像print那麼廣為人知,但它們卻異常的強大,用好了可以大大提高 效率。這次來梳理下8個好用的python內建函式。當需要對乙個列表進行去重操作的時候,set 函式就派上用場了。obj a b c b a print set obj set iterable 用於建立...

Python小白必備的8個最常用的內建函式

python給我們內建了大量功能函式,官方文件上列出了69個,有些是我們是平時開發中經常遇到的,也有一些函式很少被用到,這裡列舉被開發者使用最頻繁的8個函式以及他們的詳細用法 print函式是你學python接觸到的第乙個函式,它將物件輸出到標準輸出流,可將任意多個物件列印出來,函式的具體定義 pr...

Python小白必備的8個最常用的內建函式

python給我們內建了大量功能函式,官方文件上列出了69個,有些是我們是平時開發中經常遇到的,也有一些函式很少被用到,這裡列舉被開發者使用最頻繁的8個函式以及他們的詳細用法 print函式是你學python接觸到的第乙個函式,它將物件輸出到標準輸出流,可將任意多個物件列印出來,函式的具體定義 pr...