python的內(nèi)置函數(shù)(68個(gè))

創(chuàng)新互聯(lián)致力于互聯(lián)網(wǎng)網(wǎng)站建設(shè)與網(wǎng)站營(yíng)銷,提供網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、網(wǎng)站開發(fā)、seo優(yōu)化、網(wǎng)站排名、互聯(lián)網(wǎng)營(yíng)銷、微信小程序、公眾號(hào)商城、等建站開發(fā),創(chuàng)新互聯(lián)網(wǎng)站建設(shè)策劃專家,為不同類型的客戶提供良好的互聯(lián)網(wǎng)應(yīng)用定制解決方案,幫助客戶在新的全球化互聯(lián)網(wǎng)環(huán)境中保持優(yōu)勢(shì)。
Python考核31個(gè)內(nèi)置函數(shù),
python內(nèi)置了很多內(nèi)置函數(shù)、類方法屬性及各種模塊。當(dāng)我們想要當(dāng)我們想要了解某種類型有哪些屬性方法以及每種方法該怎么使用時(shí),我們可以使用dir()函數(shù)和help()函數(shù)在python idle交互式模式下獲得我們想要的信息。
? dir()函數(shù)獲得對(duì)象中可用屬性的列表
Python中的關(guān)鍵詞有哪些?
dir(__builtins__):查看python內(nèi)置函數(shù)
help(‘keywords‘):查看python關(guān)鍵詞
如微分積分方程的求解程序、訪問互聯(lián)網(wǎng)、獲取日期和時(shí)間、機(jī)器學(xué)習(xí)算法等。這些程序往往被收入程序庫(kù)中,構(gòu)成程序庫(kù)。
只有經(jīng)過嚴(yán)格檢驗(yàn)的程序才能放在程序庫(kù)里。檢驗(yàn),就是對(duì)程序作充分的測(cè)試。通常進(jìn)行的有正確性測(cè)試、精度測(cè)試、速度測(cè)試、邊界條件和出錯(cuò)狀態(tài)的測(cè)試。經(jīng)過檢驗(yàn)的程序不但能保證計(jì)算結(jié)果的正確性,而且對(duì)錯(cuò)誤調(diào)用也能作出反應(yīng)。程序庫(kù)中的程序都是規(guī)范化的。所謂規(guī)范化有三重含義:①同一庫(kù)里所有程序的格式是統(tǒng)一的;② 對(duì)這些程序的調(diào)用方法是相同的;③ 每個(gè)程序所需參數(shù)的數(shù)目、順序和類型都是嚴(yán)格規(guī)定好的。
Python的庫(kù)包含標(biāo)準(zhǔn)庫(kù)和第三方庫(kù)
標(biāo)準(zhǔn)庫(kù):程序語(yǔ)言自身?yè)碛械膸?kù),可以直接使用。help('modules')
第三方庫(kù):第三方者使用該語(yǔ)言提供的程序庫(kù)。
標(biāo)準(zhǔn)庫(kù): turtle 庫(kù)(必選)、 random 庫(kù)(必選)、 time 庫(kù)(可選)。
? turtle 庫(kù):圖形繪制庫(kù)
原理如同控制一只海龜,以不同的方向和速度進(jìn)行位移而得到其運(yùn)動(dòng)軌跡。
使用模塊的幫助時(shí),需要先將模塊導(dǎo)入。
例如:在IDLE中輸入import turtle
dir(turtle)
help(turtle.**)
1.畫布
畫布就是turtle為我們展開用于繪圖區(qū)域, 我們可以設(shè)置它的大小和初始位置。
setup()方法用于初始化畫布窗口大小和位置,參數(shù)包括畫布窗口寬、畫布窗口高、窗口在屏幕的水平起始位置和窗口在屏幕的垂直起始位置。
參數(shù):width, height: 輸入寬和高為整數(shù)時(shí),表示 像素 ;為小數(shù)時(shí),表示占據(jù)電腦屏幕的比例。(startx,starty):這一坐標(biāo)表示
矩形窗口左上角頂點(diǎn)的位置,如果為空,則窗口位于屏幕中心:
例如:setup(640,480,300,300)表示在桌面屏幕(300,300)位置開始創(chuàng)建640×480大小的畫布窗體。
2、畫筆
? color() 用于設(shè)置或返回畫筆顏色和填充顏色。
例如:color(‘red’)將顏色設(shè)為紅色,也可用fillcolor()方法設(shè)置或返回填充顏色,或用pencolor()方法設(shè)置或返回筆觸顏色。
Python中有許多內(nèi)置函數(shù),不像print、len那么廣為人知,但它們的功能卻異常強(qiáng)大,用好了可以大大提高代碼效率,同時(shí)提升代碼的簡(jiǎn)潔度,增強(qiáng)可閱讀性
Counter
collections在python官方文檔中的解釋是High-performance container datatypes,直接的中文翻譯解釋高性能容量數(shù)據(jù)類型。這個(gè)模塊實(shí)現(xiàn)了特定目標(biāo)的容器,以提供Python標(biāo)準(zhǔn)內(nèi)建容器 dict , list , set , 和 tuple 的替代選擇。在python3.10.1中它總共包含以下幾種數(shù)據(jù)類型:
容器名簡(jiǎn)介
namedtuple() 創(chuàng)建命名元組子類的工廠函數(shù)
deque 類似列表(list)的容器,實(shí)現(xiàn)了在兩端快速添加(append)和彈出(pop)
ChainMap 類似字典(dict)的容器類,將多個(gè)映射集合到一個(gè)視圖里面
Counter 字典的子類,提供了可哈希對(duì)象的計(jì)數(shù)功能
OrderedDict 字典的子類,保存了他們被添加的順序
defaultdict 字典的子類,提供了一個(gè)工廠函數(shù),為字典查詢提供一個(gè)默認(rèn)值
UserDict 封裝了字典對(duì)象,簡(jiǎn)化了字典子類化
UserList 封裝了列表對(duì)象,簡(jiǎn)化了列表子類化
UserString 封裝了字符串對(duì)象,簡(jiǎn)化了字符串子類化
其中Counter中文意思是計(jì)數(shù)器,也就是我們常用于統(tǒng)計(jì)的一種數(shù)據(jù)類型,在使用Counter之后可以讓我們的代碼更加簡(jiǎn)單易讀。Counter類繼承dict類,所以它能使用dict類里面的方法
舉例
#統(tǒng)計(jì)詞頻
fruits = ['apple', 'peach', 'apple', 'lemon', 'peach', 'peach']
result = {}
for fruit in fruits:
if not result.get(fruit):
result[fruit] = 1
else:
result[fruit] += 1
print(result)
#{'apple': 2, 'peach': 3, 'lemon': 1}下面我們看用Counter怎么實(shí)現(xiàn):
from collections import Counter
fruits = ['apple', 'peach', 'apple', 'lemon', 'peach', 'peach']
c = Counter(fruits)
print(dict(c))
#{'apple': 2, 'peach': 3, 'lemon': 1}顯然代碼更加簡(jiǎn)單了,也更容易閱讀和維護(hù)了。
elements()
返回一個(gè)迭代器,其中每個(gè)元素將重復(fù)出現(xiàn)計(jì)數(shù)值所指定次。元素會(huì)按首次出現(xiàn)的順序返回。如果一個(gè)元素的計(jì)數(shù)值小于1,elements()將會(huì)忽略它。
c = Counter(a=4, b=2, c=0, d=-2)
sorted(c.elements())
['a', 'a', 'a', 'a', 'b', 'b']most_common([n])
返回一個(gè)列表,其中包含n個(gè)最常見的元素及出現(xiàn)次數(shù),按常見程度由高到低排序。如果n被省略或?yàn)镹one,most_common()將返回計(jì)數(shù)器中的所有元素。計(jì)數(shù)值相等的元素按首次出現(xiàn)的順序排序:
Counter('abracadabra').most_common(3)
[('a', 5), ('b', 2), ('r', 2)]這兩個(gè)方法是Counter中最常用的方法,其他方法可以參考 python3.10.1官方文檔
實(shí)戰(zhàn)
Leetcode 1002.查找共用字符
給你一個(gè)字符串?dāng)?shù)組words,請(qǐng)你找出所有在words的每個(gè)字符串中都出現(xiàn)的共用字符(包括重復(fù)字符),并以數(shù)組形式返回。你可以按任意順序返回答案。
輸入:words = ["bella", "label", "roller"]
輸出:["e", "l", "l"]
輸入:words = ["cool", "lock", "cook"]
輸出:["c", "o"]看到統(tǒng)計(jì)字符,典型的可以用Counter完美解決。這道題是找出字符串列表里面每個(gè)元素都包含的字符,首先可以用Counter計(jì)算出每個(gè)元素每個(gè)字符出現(xiàn)的次數(shù),依次取交集最后得出所有元素共同存在的字符,然后利用elements輸出共用字符出現(xiàn)的次數(shù)
class Solution:
def commonChars(self, words: List[str]) - List[str]:
from collections import Counter
ans = Counter(words[0])
for i in words[1:]:
ans = Counter(i)
return list(ans.elements())提交一下,發(fā)現(xiàn)83個(gè)測(cè)試用例耗時(shí)48ms,速度還是不錯(cuò)的
sorted
在處理數(shù)據(jù)過程中,我們經(jīng)常會(huì)用到排序操作,比如將列表、字典、元組里面的元素正/倒排序。這時(shí)候就需要用到sorted(),它可以對(duì)任何可迭代對(duì)象進(jìn)行排序,并返回列表
對(duì)列表升序操作:
a = sorted([2, 4, 3, 7, 1, 9])
print(a)
# 輸出:[1, 2, 3, 4, 7, 9]對(duì)元組倒序操作:
sorted((4,1,9,6),reverse=True)
print(a)
# 輸出:[9, 6, 4, 1]使用參數(shù):key,根據(jù)自定義規(guī)則,按字符串長(zhǎng)度來排序:
fruits = ['apple', 'watermelon', 'pear', 'banana']
a = sorted(fruits, key = lambda x : len(x))
print(a)
# 輸出:['pear', 'apple', 'banana', 'watermelon']all
all() 函數(shù)用于判斷給定的可迭代參數(shù)iterable中的所有元素是否都為 TRUE,如果是返回 True,否則返回 False。元素除了是 0、空、None、False外都算True。注意:空元組、空列表返回值為True。
all(['a', 'b', 'c', 'd']) # 列表list,元素都不為空或0
True
all(['a', 'b', '', 'd']) # 列表list,存在一個(gè)為空的元素
False
all([0, 1,2, 3]) # 列表list,存在一個(gè)為0的元素
False
all(('a', 'b', 'c', 'd')) # 元組tuple,元素都不為空或0
True
all(('a', 'b', '', 'd')) # 元組tuple,存在一個(gè)為空的元素
False
all((0, 1, 2, 3)) # 元組tuple,存在一個(gè)為0的元素
False
all([]) # 空列表
True
all(()) # 空元組
Trueany函數(shù)正好和all函數(shù)相反:判斷一個(gè)tuple或者list是否全為空,0,F(xiàn)alse。如果全為空,0,F(xiàn)alse,則返回False;如果不全為空,則返回True。
F-strings
在python3.6.2版本中,PEP 498提出一種新型字符串格式化機(jī)制,被稱為 “字符串插值” 或者更常見的一種稱呼是F-strings,F(xiàn)-strings提供了一種明確且方便的方式將python表達(dá)式嵌入到字符串中來進(jìn)行格式化:
s1='Hello'
s2='World'
print(f'{s1} {s2}!')
# Hello World!在F-strings中我們也可以執(zhí)行函數(shù):
def power(x):
return x*x
x=4
print(f'{x} * {x} = {power(x)}')
# 4 * 4 = 16而且F-strings的運(yùn)行速度很快,比傳統(tǒng)的%-string和str.format()這兩種格式化方法都快得多,書寫起來也更加簡(jiǎn)單。
本文主要講解了python幾種冷門但好用的函數(shù),更多內(nèi)容以后會(huì)陸陸續(xù)續(xù)更新~
Python內(nèi)置函數(shù)有很多,為大家推薦5個(gè)神仙級(jí)的內(nèi)置函數(shù):
(1)Lambda函數(shù)
用于創(chuàng)建匿名函數(shù),即沒有名稱的函數(shù)。它只是一個(gè)表達(dá)式,函數(shù)體比def簡(jiǎn)單很多。當(dāng)我們需要?jiǎng)?chuàng)建一個(gè)函數(shù)來執(zhí)行單個(gè)操作并且可以在一行中編寫時(shí),就可以用到匿名函數(shù)了。
Lamdba的主體是一個(gè)表達(dá)式,而不是一個(gè)代碼塊。僅僅能在lambda表達(dá)式中封裝有限的邏輯進(jìn)去。
利用Lamdba函數(shù),往往可以將代碼簡(jiǎn)化許多。
(2)Map函數(shù)
會(huì)將一個(gè)函數(shù)映射到一個(gè)輸入列表的所有元素上,比如我們先創(chuàng)建了一個(gè)函數(shù)來返回一個(gè)大寫的輸入單詞,然后將此函數(shù)應(yīng)有到列表colors中的所有元素。
我們還可以使用匿名函數(shù)lamdba來配合map函數(shù),這樣可以更加精簡(jiǎn)。
(3)Reduce函數(shù)
當(dāng)需要對(duì)一個(gè)列表進(jìn)行一些計(jì)算并返回結(jié)果時(shí),reduce()是個(gè)非常有用的函數(shù)。舉個(gè)例子,當(dāng)需要計(jì)算一個(gè)整數(shù)列表所有元素的乘積時(shí),即可使用reduce函數(shù)實(shí)現(xiàn)。
它與函數(shù)的最大的區(qū)別就是,reduce()里的映射函數(shù)(function)接收兩個(gè)參數(shù),而map接收一個(gè)參數(shù)。
(4)enumerate函數(shù)
用于將一個(gè)可遍歷的數(shù)據(jù)對(duì)象(如列表、元組或字符串)組合為一個(gè)索引序列,同時(shí)列出數(shù)據(jù)和數(shù)據(jù)下標(biāo),一般用在for循環(huán)當(dāng)中。
它的兩個(gè)參數(shù),一個(gè)是序列、迭代器或其他支持迭代對(duì)象;另一個(gè)是下標(biāo)起始位置,默認(rèn)情況從0開始,也可以自定義計(jì)數(shù)器的起始編號(hào)。
(5)Zip函數(shù)
用于將可迭代的對(duì)象作為參數(shù),將對(duì)象中對(duì)應(yīng)的元素打包成一個(gè)個(gè)元組,然后返回由這些元組組成的列表
當(dāng)我們使用zip()函數(shù)時(shí),如果各個(gè)迭代器的元素個(gè)數(shù)不一致,則返回列表長(zhǎng)度與最短的對(duì)象相同。
這幾個(gè)函數(shù)在 Python 里面被稱為高階函數(shù),本文主要學(xué)習(xí)它們的用法。
filter 函數(shù)原型如下:
第一個(gè)參數(shù)是判斷函數(shù)(返回結(jié)果需要是 True 或者 False),第二個(gè)為序列,該函數(shù)將對(duì) iterable 序列依次執(zhí)行 function(item) 操作,返回結(jié)果是過濾之后結(jié)果組成的序列。
簡(jiǎn)單記憶:對(duì)序列中的元素進(jìn)行篩選,獲取符合條件的序列。
返回結(jié)果為: ,使用 list 函數(shù)可以輸入序列內(nèi)容。
map 函數(shù)原型如下:
該函數(shù)運(yùn)行之后生成一個(gè) list,第一個(gè)參數(shù)是函數(shù)、第二個(gè)參數(shù)是一個(gè)或多個(gè)序列;
下述代碼是一個(gè)簡(jiǎn)單的測(cè)試案例:
上述代碼運(yùn)行完畢,得到的結(jié)果是: 。使用 print(list(my_new_list)) 可以得到結(jié)果。
map 函數(shù)的第一個(gè)參數(shù),可以有多個(gè)參數(shù),當(dāng)這種情況出現(xiàn)后,后面的第二個(gè)參數(shù)需要是多個(gè)序列。
map 函數(shù)解決的問題:
reduce 函數(shù)原型如下:
第一個(gè)參數(shù)是函數(shù),第二個(gè)參數(shù)是序列,返回計(jì)算結(jié)果之后的值。該函數(shù)價(jià)值在于滾動(dòng)計(jì)算應(yīng)用于列表中的連續(xù)值。
測(cè)試代碼如下:
最終的結(jié)果是 6,如果設(shè)置第三個(gè)參數(shù)為 4,可以運(yùn)行代碼查看結(jié)果,最后得到的結(jié)論是,第三個(gè)參數(shù)表示初始值,即累加操作初始的數(shù)值。
簡(jiǎn)單記憶:對(duì)序列內(nèi)所有元素進(jìn)行累計(jì)操作。
zip 函數(shù)原型如下:
zip 函數(shù)將可迭代的對(duì)象作為參數(shù),將對(duì)象中對(duì)應(yīng)的元素打包成一個(gè)個(gè)元組,然后返回由這些元組組成的列表。
如果各個(gè)迭代器的元素個(gè)數(shù)不一樣,則返回列表長(zhǎng)度與最短的對(duì)象相同,利用星號(hào)( * )操作符,可以將元組解壓為列表。
測(cè)試代碼如下:
展示如何利用 * 操作符:
輸出結(jié)果如下:
簡(jiǎn)單記憶:zip 的功能是映射多個(gè)容器的相似索引,可以方便用于來構(gòu)造字典。
enumerate 函數(shù)原型如下:
參數(shù)說明:
該函數(shù)用于將一個(gè)可遍歷的數(shù)據(jù)對(duì)象組合為一個(gè)索引序列,同時(shí)列出數(shù)據(jù)和數(shù)據(jù)下標(biāo),一般用在 for 循環(huán)當(dāng)中。
測(cè)試代碼如下:
返回結(jié)果為: 。
本文涉及的函數(shù)可以與 lambda 表達(dá)式進(jìn)行結(jié)合,能大幅度提高編碼效率。最好的學(xué)習(xí)資料永遠(yuǎn)是官方手冊(cè)
當(dāng)前題目:python內(nèi)置函數(shù)助記,python里的內(nèi)置函數(shù)
網(wǎng)站地址:http://chinadenli.net/article43/dsepges.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、服務(wù)器托管、企業(yè)建站、App設(shè)計(jì)、Google、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)