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...