日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

不同数据类型的处理函数(一)

發(fā)布時間:2023/11/27 生活经验 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 不同数据类型的处理函数(一) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
紫色部分使用率是非常高的,盡量掌握。以下例程以python3為例,2.x略有差別。
python中處理數(shù)據(jù)函數(shù)有很多很多種,作為使用者沒有必要完全掌握,掌握一個原則:“會用就行”,一些不常見的函數(shù)能夠隨時“學(xué)會使用”就可以了。

1.處理數(shù)字的函數(shù)非常多,但是一般情況下數(shù)字只是用于計算,只需要掌握.bit_length()就可以。
x.bit_length() 功能:用于計算x轉(zhuǎn)換為二進(jìn)制后的位數(shù),x為int型
v1=3 
v2=v1.bit_length()
print(v2)  #3換成二進(jìn)制是11,所以輸出是2
v3=4
v4=v3.bit_length()  #4換成二進(jìn)制是100,所以輸出是3
print(v4)
v5=255  #255換成二進(jìn)制是1111 1111,所以輸出是8
v6=v5.bit_length()
print(v6)

輸出:

2

3

8

注意:若x為str型,報錯

2.處理字符串函數(shù)。

x.capitalize()  功能:將首字母大寫
v1="abc"
v2=v1.capitalize()
print(v2)

輸出:Abc

注意:若x為int型,結(jié)果不報錯,但是沒有任何意義。



x.casefold() 功能:將x中所有的大寫字母小寫
v1="AbC"
v2=v1.casefold()
print(v2)

輸出:

abc



.center() 作用:按照設(shè)定的總長度居中,并且可用任意字符補(bǔ)充其余位置,缺省值默認(rèn)為空格。
原形為:center(self, *args, **kwargs)。括號中第一部分可以忽略,第二部分為總長度,不能缺省,第三部分為填充其余位置的字符,缺省值默認(rèn)為空格。
v1="AbC"
v2=v1.center(20,"#")
print(v2)
v3="AbC"
v4=v3.center(20)
print(v4)

輸出:

########AbC#########
    ? ? ? AbC

注意:第三部分必須是一個字符,如果是大于一個字符,提示報錯The fill character must be exactly one character long
,意思是所占位置必須是一個字符長度。在python中,沒有“字符”的定義,一個字符也是字符串,這里為了方便理解,稱為字符。

x.ljust() 作用:字符串左居中,總長度須設(shè)定,空余位置用設(shè)定字符補(bǔ)齊。
v1="abc"
v2=v1.ljust(10,"*")
print(v2)
輸出:abc*******
x.rjust()  作用:字符串右居中,總長度須設(shè)定,空余位置用設(shè)定字符補(bǔ)齊。
x.zfill() 作用:字符串右居中,總長度須設(shè)定,其余位置強(qiáng)制0補(bǔ)齊。


x.casefold()
x.lower()
作用:將x中所有字符小寫。
  
v1="AbC"
v2=v1.casefold()
print(v2)
v3="AbC"
v4=v3.lower()
print(v4)

輸出:

abc
abc

雖然兩者作用看似相同,但是作用范圍略有區(qū)別。casefold()作用范圍更廣,可以將大寫英文字母之外的其他字符也轉(zhuǎn)為小寫,比如希臘字符等。lower()是將大寫英文字母轉(zhuǎn)為小寫字母。所以,日常使用,我們只需要記住casefold()即可。

?

x.upper() 作用:將x中所有字符轉(zhuǎn)為大寫。

?

x.swapcase() 作用:將字符串中所有大寫轉(zhuǎn)小寫,小寫轉(zhuǎn)大寫,其他字符不變。

?

v1="_abC"
v2=v1.swapcase()
print(v2)

?

輸出:

_ABc

?

?

?

x.count() 功能:尋找子序列出現(xiàn)的次數(shù)。(計算x中某一個或幾個連續(xù)字符出現(xiàn)的次數(shù)。)

函數(shù)原形:count(self, sub, start=None, end=None)?后兩項可以省略。

v1="AbCAbCAbC"
v2=v1.count("Ab")  #Ab出現(xiàn)了3次,所以輸出為3
print(v2)
v1="AbC"
v2=v1.count("AC")  #AC雖然出現(xiàn)了3次,但是AC并不連續(xù),所以輸出為0
print(v2)

輸出:

3
0

v1="AbCAbCAbC"
v2=v1.count("Ab",3)
print(v2)
v1="AbCAbCAbC"
v2=v1.count("Ab",4)
print(v2)

輸出:

2
1

start的意思是起始位置,start=3時,重復(fù)次數(shù)是2,start=4時重復(fù)次數(shù)是4,說明第一個A的位置不是0,而是1。

v1="AbCAbCAbC"
v2=v1.count("Ab",3,7)
print(v2)
v1="AbCAbCAbC"
v2=v1.count("Ab",3,8)
print(v2)

輸出:

1

2

end是結(jié)束位置,end=7時,重復(fù)1次,end=8時重復(fù)2次。7的位置是第三個b,8的位置是第三個C,所以起始位置包含start,不包含end。可以理解為高中所學(xué)的“區(qū)間”概念,左閉右開。

注意:類似的,在原型中有=none的都是可以省略的。

?

?

x.endswitch()? 作用:檢測是否以某一個字符串結(jié)束,返回值是布爾型,即true false。

v1="ABC"
v2=v1.endswith("C")
print(v2)
v1="ABC"
v2=v1.endswith("D")
print(v2)
v1="ABCDE"
v2=v1.endswith("CE") #CE不連續(xù),所以輸出是false
print(v2)

輸出:

True
False

False

?

?

x.startswitch()? 作用:檢測是否以某一個字符串開始,返回值是布爾型,即true false。和x.endswitch() 用法一致。

?

x.find()作用:尋找子序列是否存在。如果不存在,返回值為-1;如果存在,返回值是所在位置。第一個位置是0

v1='abcabc'
v2=v1.find('bc')
print(v2)
v1='abcabc'
v2=v1.find('ca')
print(v2)

輸出:

1

2

x.find()函數(shù)還可以設(shè)置查找啟示和停止位置。同樣遵循左閉右開的原則。

v1='abcabc'
v2=v1.find('bc',1,2)   
print(v2)  # 輸出: -1
v1='abcabc'
v2=v1.find('bc',1,3)
print(v2)  # 輸出: 1

index函數(shù)和find()函數(shù)功能一樣,都是尋找;但是當(dāng)找不到時,find()的返回值是-1,index()報錯。

?

?

x.format 作用:替換指定字符

v1="{XXX}棒棒噠 每天{age}歲"
print(v1)
v2=v1.format(XXX="王棟軒",age="18")
print(v2)

 輸出:

{XXX}棒棒噠 每天{age}歲
王棟軒棒棒噠 每天18歲

在v1中,需要代替的字符串用大括號{},括起來。也可以不用寫“XXX”和“age”,用占位符表示,從0開始。

v1="{0}棒棒噠 每天{1}歲"
print(v1)
v2=v1.format("王棟軒","18")
print(v2)  #輸出:王棟軒棒棒噠 每天18歲

另外一種書寫方式:

v1="{xxx}棒棒噠 每天{age}歲"
print(v1)
v2=v1.format_map({"xxx":"王棟軒","age":"18"})
print(v2)

不同的是,傳入的值是{"xxx":"王棟軒","age":"18"}

另外一個替換的函數(shù)是replace()

?

v1="XXX棒棒噠,XXX美美噠"
v2=v1.replace('XXX',"王棟軒")
v3=v1.replace('XXX',"王棟軒",1)
v4=v1.replace('XXX',"王棟軒",2)
print(v2,v3,v4)

?

輸出:王棟軒棒棒噠,王棟軒美美噠 王棟軒棒棒噠,XXX美美噠 王棟軒棒棒噠,王棟軒美美噠

?

 

x.isalnum() 作用:判斷字符串中是否只包含數(shù)字和字母;如果只包含數(shù)字和字符串,返回值是true;否則,false

v1="123abc-+"
v2=v1.isalnum()
print(v2)
v1="123abc"
v2=v1.isalnum()
print(v2)

輸出:

False
True

x.isalpha()作用是判斷字符串中是否只含有英文字母。是,返回true,不是,返回false。
x.isdecimal()、x.isnumeric()和x.isdigit()用來判定是否只有數(shù)字,但是x.isdecimal()只能判定十進(jìn)制的數(shù)字,x.isdigit()可以判定比較生僻的數(shù)字,比如②



?

?

x.expandtabs()? ?作用:將轉(zhuǎn)義字符\t轉(zhuǎn)為空格,空格數(shù)量為()中內(nèi)容,缺省值為8。

v1="12345679\t1\t23456\t"
v2=v1.expandtabs()
print(v1)
print(v2)

輸出

?

?

x.isidentifier() 作用:檢測字符串是否符合標(biāo)識符命名規(guī)則。在python中,標(biāo)識符命名規(guī)則為:只包含數(shù)字、字母和下劃線,開頭不能是字母。符合規(guī)則返回true,不符合返回false。
x.islower 作用:檢測字符串中是否都是小寫字母,如果是,返回true,如果不是,返回false
x.isprintable() 作用:檢測字符串中是否含有不能打印的字符。例如轉(zhuǎn)義字符,\n \t等,這些都不能打印出來。如果含有,返回false,如果不含有,返回true
x.isspace() 作用:檢測字符串是否全部是空格(空字符串),是,返回true,不是,返回false
x.istitle() 作用:檢測字符串是否是標(biāo)題,也就是每個單詞首字母大寫。
x.title() 作用:將字符串轉(zhuǎn)為標(biāo)題,也就是每個單詞首字母大寫。
x.islower() 作用:判斷字符串中所有字符是不是小寫字母,是,返回true,否,返回false
x.isupper() 作用:判斷字符串中所有字符是不是大寫字母,是,返回true,否,返回false


x.join()  作用:在原字符串中,每隔一個字符,插入一個新的字符。開頭和結(jié)尾不加。
v1="床前明月光"
v2='  '
v3=v2.join(v1)
print(v3)

輸出:

床_前_明_月_光

?

x.strip()、x.rstrip()和x.lstrip() ?作用:去掉字符串中的指定子序列,缺省值默認(rèn)為去掉空格或\t

v1="123456789"
v2=v1.lstrip("236")
v3=v1.rstrip("abc98a")
v4=v1.strip("1")
print(v2)
print(v3)
print(v4)

輸出:

123456789
1234567
23456789

從結(jié)果中可以看出,必須從“頭”開始,如v2=v1.lstrip("236")中,v1的左側(cè)“1”沒有去掉,后邊的所有字符不可能去掉。

?

v1="  abc  "
v2=v1.lstrip()
v3=v1.rstrip()
v4=v1.strip()
print(v2)
print(v3)
print(v4)

輸出:

?

?

x.translate() 作用:替換字符串中的部分字符

v1='1383838438'
m=str.maketrans('123456','abcdef') #maketrans()的作用是將兩個字符串聯(lián)系起來,為后邊的替換做鋪墊
new_v1=v1.translate(m)
print(new_v1)

輸出:

?ac8c8c8dc8

?

x.partition()和x.rpartition() ?作用:前者從左側(cè)開始分割,后者從右側(cè)開始分割,兩者都只能分割成三部分

v1='1383838438'
v2=v1.partition('3')
v3=v1.rpartition('3')
print(v2,v3)

輸出:

('1', '3', '83838438') ('13838384', '3', '8')

?

x.split()和x.rsplit() ?作用:前者從左側(cè)開始分割,后者從右側(cè)開始分割,與partition()不同的是,可以分割成任意部分,而且弊端是分割的標(biāo)志不再作為分割的結(jié)果。例如下面例子中的“3”不會出現(xiàn)在分割結(jié)果中。split()括號中缺省時,默認(rèn)為分割成數(shù)量最多的部分,即碰到相同字符就分割。

v1='1383838438'
v2=v1.split('3',2)
v3=v1.rsplit('3',2)
print(v2,v3)

輸出:

['1', '8', '838438'] ['13838', '84', '8']

?

x.splitlines() ?作用:對換行符\n進(jìn)行分割。()中的參數(shù)是布爾值,true,false。true代表保留換行\(zhòng)n,false不保留\n(這里的\n不再是換行的意思,就是普通字符而已)。

v1="張三\n李四\n王五"
v2=v1.splitlines(True)
v3=v1.splitlines(False)
print(v2,v3)

輸出:['張三\n', '李四\n', '王五'] ['張三', '李四', '王五']

注意:True or False 首字母必須大寫!!!否則不識別!!!

轉(zhuǎn)載于:https://www.cnblogs.com/lgwdx/p/9572792.html

總結(jié)

以上是生活随笔為你收集整理的不同数据类型的处理函数(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。