Python中的常用函數(shù)使用及說明
1.range()是一個(gè)函數(shù)
for i in range () 就是給i賦值:
比如 for i in range (1,3):
就是把1,2依次賦值給i
range () 函數(shù)的使用是這樣的:
range(start, stop[, step]),分別是起始、終止和步長
舉例:
range(3)即:從0到3,不包含3,即0,1,2
>>> for i in range(3): print(i) 0 1 2
range(1,3,2)即:從1到3,每次增加2,因?yàn)?+2=3,所以輸出只有1
第三個(gè)數(shù)字2是代表步長。如果不設(shè)置,就是默認(rèn)步長為1
>>> for i in range(1,3,2): print(i) 1
2.Python數(shù)字函數(shù)
函數(shù) | 返回值(描述) |
---|---|
abs(x) | 返回?cái)?shù)字的絕對值,如abs(-10)返回10 |
ceil(x) | 返回?cái)?shù)字的上入整數(shù),如math.ceil(4.1)返回5 |
cmp(x,y) | 如果 x < y 返回 -1,如果x == y 返回0,如果x > y 返回1 |
exp(x) | 返回e的x次冪(ex),如果math.exp(1)返回2.718281828459045) |
fabs(x) | 返回?cái)?shù)字的絕對值,如math.fabs(-10)返回10.0 |
floor(x) | 返回?cái)?shù)字的下設(shè)整數(shù),如math.floor(4,9)返回4 |
log(x) | log() 返回 x 的自然對數(shù),如math.log(math.e)返回1.0,math.log(100,10)返回2.0 |
log10(x) | 返回以10為基數(shù)的x的對數(shù),如math.log10(100)返回2.0 |
max(x1,x2,…) | 返回給定參數(shù)的最大值,參數(shù)可以為序列 |
min(x1,x2,…) | 返回給定參數(shù)的最小值,參數(shù)可以為序列 |
modf(x) | 返回x的整數(shù)部分與小數(shù)部分,兩部分的數(shù)值符號與x相同,整數(shù)部分以浮點(diǎn)型表示 |
pow(x,y) | x**y運(yùn)算后的結(jié)果 |
round(x,[n]) | 返回浮點(diǎn)數(shù)x的四舍五入值,如給出n值,則代表舍入到小數(shù)點(diǎn)后的位數(shù) |
sqrt(x) | 返回?cái)?shù)字x的平方根 |
3.Python隨機(jī)函數(shù)
隨機(jī)數(shù)可以用于數(shù)字,游戲,安全等領(lǐng)域中,還經(jīng)常被嵌入到算法中,用以提高算法效率,并提高程序的安全性;
Python包含以下常用隨機(jī)函數(shù):
函數(shù) | 描述 |
---|---|
choice()seq | 從序列的元素中隨機(jī)挑選一個(gè)元素,比如random.choice(range(10)),從0到9中隨機(jī)挑選一個(gè)整數(shù) |
randrange([start,] stop [,step]) | 從指定基數(shù)遞增的集合中獲取一個(gè)隨機(jī)數(shù),基數(shù)默認(rèn)值為1 |
random() | 隨機(jī)生成一個(gè)實(shí)數(shù),它在[0,1)范圍內(nèi) |
seed([x]) | 改變隨機(jī)數(shù)生成器的種子seed。如果你不了解其原理,你不必特別去設(shè)定seed,Python會幫你選擇seed |
shuffle(lst) | 將序列的所有元素隨機(jī)排列 |
unifrom(x,y) | 隨機(jī)生成下一個(gè)實(shí)數(shù),它在[x,y]范圍內(nèi) |
4.Python的字符串內(nèi)建函數(shù)
字符串方法是從python1.6到2.0慢慢加進(jìn)來的——它們也被加到了Python中;
這些實(shí)現(xiàn)了string模塊的大部分方法,如下表所示除了目前字符串內(nèi)建支持的方法,都包含了對Unicode的支持,有一些甚至是專門用于Unicode的。
方法 | 描述 |
---|---|
string.capitalize() | 把字符串的第一個(gè)字符大寫 |
string.center(width) | 返回一個(gè)原字符串居中,并使用空格填充至長度width的新字符串 |
string.count(str, beg=0, end=len(string)) | 返回 str 在 string 里面出現(xiàn)的次數(shù),如果 beg 或者 end 指定則返回指定范圍內(nèi) str 出現(xiàn)的次數(shù) |
string.decode(encoding=‘UTF-8’, errors=‘strict’) | 以 encoding 指定的編碼格式解碼 string,如果出錯(cuò)默認(rèn)報(bào)一個(gè) ValueError 的 異 常 , 除非 errors 指 定 的 是 ‘ignore’ 或 者’replace’ |
string.encode(encoding=‘UTF-8’, errors=‘strict’) | 以 encoding 指定的編碼格式編碼 string,如果出錯(cuò)默認(rèn)報(bào)一個(gè)ValueError 的異常,除非 errors 指定的是’ignore’或者’replace’ |
string.endswith(obj, beg=0, end=len(string)) | 檢查字符串是否以 obj 結(jié)束,如果beg 或者 end 指定則檢查指定的范圍內(nèi)是否以 obj 結(jié)束,如果是,返回 True,否則返回 False. |
string.expandtabs(tabsize=8) | 把字符串 string 中的 tab 符號轉(zhuǎn)為空格,tab 符號默認(rèn)的空格數(shù)是 8。 |
string.find(str, beg=0, end=len(string)) | 檢測 str 是否包含在 string 中,如果 beg 和 end 指定范圍,則檢查是否包含在指定范圍內(nèi),如果是返回開始的索引值,否則返回-1 |
string.format() | 格式化字符串 |
string.index(str, beg=0, end=len(string)) | 跟find()方法一樣,只不過如果str不在 string中會報(bào)一個(gè)異常. |
string.isalnum() | 如果 string 至少有一個(gè)字符并且所有字符都是字母或數(shù)字則返回 True,否則返回 False |
string.isalpha() | 如果 string 至少有一個(gè)字符并且所有字符都是字母則返回 True,否則返回 False |
string.isdecimal() | 如果 string 只包含十進(jìn)制數(shù)字則返回 True 否則返回 False. |
string.isdigit() | 如果 string 只包含數(shù)字則返回 True 否則返回 False. |
string.islower() | 如果 string 中包含至少一個(gè)區(qū)分大小寫的字符,并且所有這些(區(qū)分大小寫的)字符都是小寫,則返回 True,否則返回 False |
string.isnumeric() | 如果 string 中只包含數(shù)字字符,則返回 True,否則返回 False |
string.isspace() | 如果 string 中只包含空格,則返回 True,否則返回 False. |
string.istitle() | 如果 string 是標(biāo)題化的(見 title())則返回 True,否則返回 False |
string.isupper() | 如果 string 中包含至少一個(gè)區(qū)分大小寫的字符,并且所有這些(區(qū)分大小寫的)字符都是大寫,則返回 True,否則返回 False |
string.join(seq) | 以 string 作為分隔符,將 seq 中所有的元素(的字符串表示)合并為一個(gè)新的字符串 |
string.ljust(width) | 返回一個(gè)原字符串左對齊,并使用空格填充至長度 width 的新字符串 |
string.lower() | 轉(zhuǎn)換 string 中所有大寫字符為小寫. |
string.lstrip() | 截掉 string 左邊的空格 |
string.maketrans(intab, outtab) | maketrans() 方法用于創(chuàng)建字符映射的轉(zhuǎn)換表,對于接受兩個(gè)參數(shù)的最簡單的調(diào)用方式,第一個(gè)參數(shù)是字符串,表示需要轉(zhuǎn)換的字符,第二個(gè)參數(shù)也是字符串表示轉(zhuǎn)換的目標(biāo)。 |
max(str) | 返回字符串 str 中最大的字母。 |
min(str) | 返回字符串 str 中最小的字母。 |
string.partition(str) | 有點(diǎn)像 find()和 split()的結(jié)合體,從 str 出現(xiàn)的第一個(gè)位置起,把 字 符 串 string 分 成 一 個(gè) 3 元 素 的 元 組 (string_pre_str,str,string_post_str),如果 string 中不包含str 則 string_pre_str == string. |
string.replace(str1, str2, num=string.count(str1)) | 把 string 中的 str1 替換成 str2,如果 num 指定,則替換不超過 num 次. |
string.rfind(str, beg=0,end=len(string) ) | 類似于 find() 函數(shù),返回字符串最后一次出現(xiàn)的位置,如果沒有匹配項(xiàng)則返回 -1。 |
string.rindex( str, beg=0,end=len(string)) | 類似于 index(),不過是返回最后一個(gè)匹配到的子字符串的索引號。 |
string.rjust(width) | 返回一個(gè)原字符串右對齊,并使用空格填充至長度 width 的新字符串 |
string.rpartition(str) | 類似于 partition()函數(shù),不過是從右邊開始查找 |
string.rstrip() | 刪除 string 字符串末尾的空格. |
string.split(str=“”, num=string.count(str)) | 以 str 為分隔符切片 string,如果 num 有指定值,則僅分隔 num+1 個(gè)子字符串 |
string.splitlines([keepends]) | 按照行(‘\r’, ‘\r\n’, ‘\n’)分隔,返回一個(gè)包含各行作為元素的列表,如果參數(shù) keepends 為 False,不包含換行符,如果為 True,則保留換行符。 |
string.startswith(obj, beg=0,end=len(string)) | 檢查字符串是否是以 obj 開頭,是則返回 True,否則返回 False。如果beg 和 end 指定值,則在指定范圍內(nèi)檢查. |
string.strip([obj]) | 在 string 上執(zhí)行 lstrip()和 rstrip() |
string.swapcase() | 翻轉(zhuǎn) string 中的大小寫 |
string.title() | 返回"標(biāo)題化"的 string,就是說所有單詞都是以大寫開始,其余字母均為小寫(見 istitle()) |
string.translate(str, del=“”) | 根據(jù) str 給出的表(包含 256 個(gè)字符)轉(zhuǎn)換 string 的字符,要過濾掉的字符放到 del 參數(shù)中 |
string.upper() | 轉(zhuǎn)換 string 中的小寫字母為大 |
string.zfill(width) | 返回長度為 width 的字符串,原字符串 string 右對齊,前面填充0 |
5.文件操作函數(shù)
序號 | 方法及描述 |
---|---|
1 | file.close()關(guān)閉文件。關(guān)閉后文件不能再進(jìn)行讀寫操作。 |
2 | file.flush()刷新文件內(nèi)部緩沖,直接把內(nèi)部緩沖區(qū)的數(shù)據(jù)立刻寫入文件, 而不是被動(dòng)的等待輸出緩沖區(qū)寫入。 |
3 | file.fileno()返回一個(gè)整型的文件描述符(file descriptor FD 整型), 可以用在如os模塊的read方法等一些底層操作上。 |
4 | file.isatty()如果文件連接到一個(gè)終端設(shè)備返回 True,否則返回 False。 |
5 | file.next()返回文件下一行。 |
6 | file.read([size])從文件讀取指定的字節(jié)數(shù),如果未給定或?yàn)樨?fù)則讀取所有。 |
7 | file.readline([size])讀取整行,包括 “\n” 字符。 |
8 | file.readlines([sizeint])讀取所有行并返回列表,若給定sizeint>0,則是設(shè)置一次讀多少字節(jié),這是為了減輕讀取壓力。 |
9 | file.seek(offset[, whence])設(shè)置文件當(dāng)前位置 |
10 | file.tell()返回文件當(dāng)前位置。 |
11 | file.truncate([size])截取文件,截取的字節(jié)通過size指定,默認(rèn)為當(dāng)前文件位置。 |
12 | file.write(str)將字符串寫入文件,返回的是寫入的字符長度。 |
13 | file.writelines(sequence)向文件寫入一個(gè)序列字符串列表,如果需要換行則要自己加入每行的換行符。 |
1.open函數(shù)
語法:
file object = open(file_name [, access_mode][, buffering]) //完整版 open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
各個(gè)參數(shù)的細(xì)節(jié)如下:
file_name
:file_name變量是一個(gè)包含了你要訪問的文件名稱的字符串值。access_mode
:access_mode決定了打開文件的模式:只讀,寫入,追加等。所有可取值見如下的完全列表。這個(gè)參數(shù)是非強(qiáng)制的,默認(rèn)文件訪問模式為只讀®。buffering
:如果buffering的值被設(shè)為0,就不會有寄存。如果buffering的值取1,訪問文件時(shí)會寄存行。如果將buffering的值設(shè)為大于1的整數(shù),表明了這就是的寄存區(qū)的緩沖大小。如果取負(fù)值,寄存區(qū)的緩沖大小則為系統(tǒng)默認(rèn)。encoding
: 一般使用utf8errors
: 報(bào)錯(cuò)級別newline
: 區(qū)分換行符closefd
: 傳入的file參數(shù)類型opener
: 設(shè)置自定義開啟器,開啟器的返回值必須是一個(gè)打開的文件描述符。
1.close函數(shù)
File 對象的 close()方法刷新緩沖區(qū)里任何還沒寫入的信息,并關(guān)閉該文件,這之后便不能再進(jìn)行寫入。
當(dāng)一個(gè)文件對象的引用被重新指定給另一個(gè)文件時(shí),Python 會關(guān)閉之前的文件。用 close()方法關(guān)閉文件是一個(gè)很好的習(xí)慣。
語法:
fileObject.close()
1.seek函數(shù)
seek(offset [,from])
方法改變當(dāng)前文件的位置。Offset變量表示要移動(dòng)的字節(jié)數(shù)。
From變量指定開始移動(dòng)字節(jié)的參考位置。
- 如果from被設(shè)為0,這意味著將文件的開頭作為移動(dòng)字節(jié)的參考位置。
- 如果設(shè)為1,則使用當(dāng)前的位置作為參考位置。
- 如果它被設(shè)為2,那么該文件的末尾將作為參考位置。
1.tell函數(shù)
tell()方法告訴你文件內(nèi)的當(dāng)前位置, 換句話說,下一次的讀寫會發(fā)生在文件開頭這么多字節(jié)之后。
2.write函數(shù)
write()方法可將任何字符串寫入一個(gè)打開的文件。
需要重點(diǎn)注意的是,Python字符串可以是二進(jìn)制數(shù)據(jù),而不是僅僅是文字。
write()方法不會在字符串的結(jié)尾添加換行符(‘\n’):
1.read函數(shù)
read()方法從一個(gè)打開的文件中讀取一個(gè)字符串。
需要重點(diǎn)注意的是,Python字符串可以是二進(jìn)制數(shù)據(jù),而不是僅僅是文字。
語法:
fileObject.read([count])
在這里,被傳遞的參數(shù)是要從已打開文件中讀取的字節(jié)計(jì)數(shù)。
該方法從文件的開頭開始讀入,如果沒有傳入count,它會嘗試盡可能多地讀取更多的內(nèi)容,很可能是直到文件的末尾。
舉例:
fo = open("test.txt",'r+') print("fo->name:%s,fo->mode:%s"%(fo.name,fo.mode)) fo.write("this is my test.") str = fo.read(5) print("first read:%s"%str) #查找當(dāng)前位置 print("當(dāng)前位置:",fo.tell()) fo.seek(0,0) print("當(dāng)前位置:",fo.tell()) print("str:",fo.read(20)) fo.close()
open函數(shù)中mode 參數(shù)有:
模式 | 描述 |
---|---|
t | 文本模式 (默認(rèn))。 |
x | 寫模式,新建一個(gè)文件,如果該文件已存在則會報(bào)錯(cuò)。 |
b | 二進(jìn)制模式。 |
+ | 打開一個(gè)文件進(jìn)行更新(可讀可寫)。 |
U | 通用換行模式(不推薦)。 |
r | 以只讀方式打開文件。文件的指針將會放在文件的開頭。這是默認(rèn)模式。 |
rb | 以二進(jìn)制格式打開一個(gè)文件用于只讀。文件指針將會放在文件的開頭。這是默認(rèn)模式。一般用于非文本文件如圖片等。 |
r+ | 打開一個(gè)文件用于讀寫。文件指針將會放在文件的開頭。 |
rb+ | 以二進(jìn)制格式打開一個(gè)文件用于讀寫。文件指針將會放在文件的開頭。一般用于非文本文件如圖片等。 |
w | 打開一個(gè)文件只用于寫入。如果該文件已存在則打開文件,并從開頭開始編輯,即原有內(nèi)容會被刪除。如果該文件不存在,創(chuàng)建新文件。 |
wb | 以二進(jìn)制格式打開一個(gè)文件只用于寫入。如果該文件已存在則打開文件,并從開頭開始編輯,即原有內(nèi)容會被刪除。如果該文件不存在,創(chuàng)建新文件。一般用于非文本文件如圖片等。 |
w+ | 打開一個(gè)文件用于讀寫。如果該文件已存在則打開文件,并從開頭開始編輯,即原有內(nèi)容會被刪除。如果該文件不存在,創(chuàng)建新文件。 |
wb+ | 以二進(jìn)制格式打開一個(gè)文件用于讀寫。如果該文件已存在則打開文件,并從開頭開始編輯,即原有內(nèi)容會被刪除。如果該文件不存在,創(chuàng)建新文件。一般用于非文本文件如圖片等。 |
a | 打開一個(gè)文件用于追加。如果該文件已存在,文件指針將會放在文件的結(jié)尾。也就是說,新的內(nèi)容將會被寫入到已有內(nèi)容之后。如果該文件不存在,創(chuàng)建新文件進(jìn)行寫入。 |
ab | 以二進(jìn)制格式打開一個(gè)文件用于追加。如果該文件已存在,文件指針將會放在文件的結(jié)尾。也就是說,新的內(nèi)容將會被寫入到已有內(nèi)容之后。如果該文件不存在,創(chuàng)建新文件進(jìn)行寫入。 |
a+ | 打開一個(gè)文件用于讀寫。如果該文件已存在,文件指針將會放在文件的結(jié)尾。文件打開時(shí)會是追加模式。如果該文件不存在,創(chuàng)建新文件用于讀寫。 |
ab+ | 以二進(jìn)制格式打開一個(gè)文件用于追加。如果該文件已存在,文件指針將會放在文件的結(jié)尾。如果該文件不存在,創(chuàng)建新文件用于讀寫。 |
6.zip函數(shù)
對于我們的兩個(gè)list,a和b,list(zip(a, b))生成了一個(gè)列表。在這個(gè)列表中,每個(gè)元素是一個(gè)tuple;對于第i個(gè)元組,它其中的內(nèi)容是(a[i-1], b[i-1])。
這樣的操作,與壓縮軟件的“壓縮”十分接近。如果我們繼續(xù)在zip()中加入更多的參數(shù),比如zip(a, b, c, d),那么在將它轉(zhuǎn)換成list之后,結(jié)果當(dāng)然就是[(a[0], b[0], c[0], d[0]), (a[1], b[1], c[1], d[1]), …, (a[n-1], b[n-1], c[n-1], d[n-1])]。
事實(shí)上,在 Python 3 中,為了節(jié)省空間,zip()返回的是一個(gè)tuple的迭代器,這也是我們?yōu)槭裁匆{(diào)用list()將它強(qiáng)制轉(zhuǎn)換成list的原因。不過,Python 2中,它直接返回的就是一個(gè)列表了。
如果我們傳入zip()中的幾個(gè)參數(shù)不等長,會有什么結(jié)果呢?zip()很靈活,如果幾個(gè)參數(shù)不等長,那么它會取最短的那個(gè)參數(shù)的長度,然后再進(jìn)行處理。至于那些超出最短長度的成員,就只好被舍棄掉了。
origin = zip(result) #前面加號,事實(shí)上*號也是一個(gè)特殊的運(yùn)算符,叫解包運(yùn)算符
例子:
numbers = [ 1, 2, 3] string = [ 'one','two','three'] result = zip(numbers,string) lresult = list(result) print(set(result)) print(lresult) c,v = zip(*lresult) print('num:', c) print("str:", v)
結(jié)果:
[(1, 'one'), (2, 'two'), (3, 'three')]
num: (1, 2, 3)
str: ('one', 'two', 'three')
7.python內(nèi)置函數(shù)set
- set函數(shù)返回值:一個(gè) set object (集合對象,即 一個(gè) “無序不重復(fù)元素集”,特點(diǎn) :無序,不重復(fù))
- 參數(shù):空 或者 一個(gè)可迭代對象。
特性一:不重復(fù)??梢允址奖愕膶?shí)現(xiàn)一個(gè)去重的目的。當(dāng)然,我們也可以將set對象轉(zhuǎn)化為其它的可迭代對象。
特性二:無序。對于無序的可迭代對象,不能通過索引的方式取值。
set對象內(nèi)置方法:
- 1.add 即:添加一個(gè)元素進(jìn)入集合,當(dāng)此元素存在時(shí), 無影響(啥也不做)。
- 2.clear 即:將集合中所有元素移除(變?yōu)榭占希?/li>
- 3.copy 即:返回一個(gè)集合的淺拷貝
- 4.difference 即:將兩個(gè)和或多個(gè)集合進(jìn)行比較,返回一個(gè)新集合,這個(gè)集合中的元素存在于**第一個(gè)集合(或調(diào)用這個(gè)方法的集合)中,但不存在于其它集合中。
- 5.difference_update 即:從第一個(gè)集合(或調(diào)用這個(gè)方法的集合)中移除所有屬于其它集合但不屬于第一個(gè)集合(或調(diào)用這個(gè)方法的集合)**的所有元素。需要特別注意的是,這個(gè)方法返回值并不是一個(gè)新集合。
- 6.remove() 即:清除一個(gè)元素可以用 remove 或者 discard, 而清除全部可以用 clear.
- 7.difference() 即:進(jìn)行一些篩選操作, 比如對比另一個(gè)東西, 看看原來的 set 里有沒有和他不同的 (difference).
編寫一個(gè)函數(shù)來查找字符串?dāng)?shù)組中的最長公共前綴
strs = ['hello','helool','heool'] lst = list(strs) def longestCommonPrefix(strs): result = "" print(set(zip(*strs))) for temp in zip(*strs): print("tmp:",temp) if len(set(temp)) == 1: result += temp[0] else: break return result print( longestCommonPrefix(lst))
結(jié)果:
{('e', 'e', 'e'), ('o', 'o', 'l'), ('h', 'h', 'h'), ('l', 'o', 'o'), ('l', 'l', 'o')}
tmp: ('h', 'h', 'h')
tmp: ('e', 'e', 'e')
tmp: ('l', 'l', 'o')
he
8.python中的round()函數(shù)
round()是python自帶的一個(gè)函數(shù),用于數(shù)字的四舍五入。
round(number,digits)
參數(shù):
- digits>0,四舍五入到指定的小數(shù)位
- digits=0, 四舍五入到最接近的整數(shù)
- digits<0 ,在小數(shù)點(diǎn)左側(cè)進(jìn)行四舍五入
- 如果round()函數(shù)只有number這個(gè)參數(shù),等同于digits=0
四舍五入規(guī)則:
- 要求保留位數(shù)的后一位<=4,則進(jìn)位,如round(5.214,2)保留小數(shù)點(diǎn)后兩位,結(jié)果是 5.21
- 要求保留位數(shù)的后一位“=5”,且該位數(shù)后面沒有數(shù)字,則不進(jìn)位,如round(5.215,2),結(jié)果為5.21
- 要求保留位數(shù)的后一位“=5”,且該位數(shù)后面有數(shù)字,則進(jìn)位,如round(5.2151,2),結(jié)果為5.22
- 要求保留位數(shù)的后一位“>=6”,則進(jìn)位。如round(5.216,2),結(jié)果為5.22
9.字典中setdefault函數(shù)
在setdefault函數(shù)使用時(shí),如果不指定value,默認(rèn)的value就是None(None在Python中也是一個(gè)對象,記住Python中一切都是對象,Python支持動(dòng)態(tài)類型變換)。
setdefault函數(shù)的設(shè)計(jì)思想,設(shè)置key對應(yīng)的默認(rèn)值,如果key存在,key對應(yīng)的value不會被改變,而且函數(shù)總是返回key的默認(rèn)值。
在setdefault之后,dict類型的對象就有了index(key),然后就可以直接通過index來修改對應(yīng)的value。
或者直接通過index(key),可以增加dict對象中的key-value pairs。
字典常用函數(shù)/操作:
10.python中items函數(shù)
items:函數(shù)以列表返回可遍歷的(鍵, 值) 元組數(shù)組常與for循環(huán)搭配
//例如 a={'a':1,'b':2,'c':3} print(a.items()) for key,value in a.items(): print("key:",key) print('value;',value) //輸出 dict_items([('a', 1), ('b', 2), ('c', 3)]) key: a value; 1 key: b value; 2 key: c value; 3
11.python中的strip()函數(shù)
返回刪除前導(dǎo)和尾隨空格的字符串副本。如果給定了chars而不是None,則刪除chars中的字符。(該方法只能刪除開頭或是結(jié)尾的字符,不能刪除中間部分的字符。)
第一種:strip()當(dāng)函數(shù)體內(nèi)不存在任何的字符的時(shí)候則返回的是刪除字符串前導(dǎo)和尾隨空格的字符串副本(一般用來去除前后的空格)
第二種:strip()當(dāng)函數(shù)體內(nèi)存在字符的時(shí)候則得到的是刪除字符串頭尾相應(yīng)字符的字符串副本
a = “abcdef123456cba” print(a.strip(“abc”)) >>> def123456
12.python中數(shù)字與字符的轉(zhuǎn)換
- int(x ) 將x轉(zhuǎn)換為一個(gè)整數(shù)
- long(x) 將x轉(zhuǎn)換為一個(gè)長整數(shù)
- float(x ) 將x轉(zhuǎn)換到一個(gè)浮點(diǎn)數(shù)
- complex(real [,imag ]) 創(chuàng)建一個(gè)復(fù)數(shù)
- str(x ) 將對象 x 轉(zhuǎn)換為字符串
- repr(x ) 將對象 x 轉(zhuǎn)換為表達(dá)式字符串
- eval(str ) 用來計(jì)算在字符串中的有效Python表達(dá)式,并返回一個(gè)對象
- tuple(s ) 將序列 s 轉(zhuǎn)換為一個(gè)元組
- list(s ) 將序列 s 轉(zhuǎn)換為一個(gè)列表
- chr(x ) 將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)字符
- unichr(x ) 將一個(gè)整數(shù)轉(zhuǎn)換為Unicode字符
- ord(x ) 將一個(gè)字符轉(zhuǎn)換為它的整數(shù)值
- hex(x ) 將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)十六進(jìn)制字符串
- oct(x ) 將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)八進(jìn)制字符串
13.hasattr()函數(shù)用于判斷對象是否包含對應(yīng)的屬性
hasattr(object, name) object -- 對象。 name -- 字符串,屬性名。 return 如果對象有該屬性返回 True,否則返回 False。
14. filter() 函數(shù)
(1)、filter()函數(shù)的簡介和語法:
filter()函數(shù)用于過濾序列,過濾掉不符合條件的元素,返回符合條件的元素組成新列表。
(2)、filter()語法如下:
filter(function,iterable)
- function – 判斷函數(shù)。
- iterable – 可迭代對象
序列中的每個(gè)元素作為參數(shù)傳遞給函數(shù)進(jìn)行判斷, 返回True或者False,最后將返回True的元素放到新列表中
(3)、filter()使用舉例
栗子1: 過濾掉列表當(dāng)中的數(shù)字0
list_num = [1, 2, 3, 0, 8, 0, 3] print(list(filter(lambda x: x, list_num)))
結(jié)果為:
[1, 2, 3, 8, 3]
栗子2:過濾列表中數(shù)字的大小寫(針對的是字母全都是大寫或小寫的情況)
list_word = ['a', 'B', 'c', 'd', 'E'] print(list(filter(lambda x: x.isupper(), list_word))) print(list(filter(lambda x: x.islower(), list_word)))
結(jié)果為:
['B', 'E']
['a', 'c', 'd']
例子3:與dict構(gòu)成的列表處理例子
dict_a = [{'name': 'python', 'points': 10}, {'name': 'java', 'points': 8}] test_filter = filter(lambda x : x['name'] == 'python', dict_a) print(list(test_filter)) 輸出結(jié)果: [{'name': 'python', 'points': 10}]
例子4:去除空格字符
b = ['\n ', '1', ' ','Tuesday, May 05, 2020','\n',None] def not_empty(s): return s and s.strip() c = filter(not_empty,b) print(list(c)) 結(jié)果: [‘1', ‘Tuesday, May 05, 2020']
15.isinstance() 內(nèi)置函數(shù)
isinstance() 函數(shù)來判斷一個(gè)對象是否是一個(gè)已知的類型,類似 type()。
sinstance() 與 type() 區(qū)別:
- type() 不會認(rèn)為子類是一種父類類型,不考慮繼承關(guān)系。
- isinstance() 會認(rèn)為子類是一種父類類型,考慮繼承關(guān)系。
如果要判斷兩個(gè)類型是否相同推薦使用 isinstance()。
1、原型
isinstance(object, classinfo)
2、參數(shù)
object – 實(shí)例對象。 classinfo – 可以是直接或間接類名、基本類型或者由它們組成的元組。
3、返回值
如果對象的類型與參數(shù)二的類型(classinfo)相同則返回 True,否則返回 False。
實(shí)例:(獲取嵌套的數(shù)組列表)
def flatten(nest_list:list): out = [] for i in nest_list: if isinstance(i, list): tmp_list = flatten(i) for j in tmp_list: out.append(j) else: out.append(i) return out 測試結(jié)果: a = [[1,2], ['a','b', [3, 4]]] b = flatten(a) print(b) # 輸出: [1, 2, 'a', 'b', 3, 4]
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用pytorch實(shí)現(xiàn)可視化中間層的結(jié)果
今天小編就為大家分享一篇使用pytorch實(shí)現(xiàn)可視化中間層的結(jié)果,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12使用jupyter notebook直接打開.md格式的文件
這篇文章主要介紹了使用jupyter notebook直接打開.md格式的文件,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04windows下python連接oracle數(shù)據(jù)庫
這篇文章主要為大家詳細(xì)介紹了windows下python連接oracle數(shù)據(jù)庫,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06python實(shí)現(xiàn)讀取excel文件中所有sheet操作示例
這篇文章主要介紹了python實(shí)現(xiàn)讀取excel文件中所有sheet操作,涉及Python基于openpyxl模塊的Excel文件讀取、遍歷相關(guān)操作技巧,需要的朋友可以參考下2019-08-08Redis持久化機(jī)制實(shí)現(xiàn)原理和流程
這篇文章主要介紹了Redis持久化機(jī)制實(shí)現(xiàn)原理和流程,持久化就是把內(nèi)存中的數(shù)據(jù)存放到磁盤中,防止宕機(jī)后內(nèi)存數(shù)據(jù)丟失,需要的朋友可以參考下2023-04-04教你用 Python 實(shí)現(xiàn)微信跳一跳(Mac+iOS版)
這幾天看網(wǎng)上好多微信跳一跳破解了,不過都是安卓的,無奈蘋果不是開源也沒辦法。本文給大家分享用 Python 來玩微信跳一跳(Mac+iOS版),具體實(shí)現(xiàn)代碼大家參考下本文2018-01-01