Python day8:基本數(shù)據(jù)類型及內(nèi)置方法2

一饲宿、字符串剩余:(均為了解)
1沪袭、find,rfind,index,rindex,count
index與find的使用一樣,不同在于find若未找到會(huì)返回-1偷卧,index未找到直接報(bào)錯(cuò)佩厚。盡量用find來(lái)操作姆钉,保護(hù)軟件的穩(wěn)定性。

x = "hello egon egon egon"
res=x.find("egon")
print(res)
res=x.find("egon123") # -1代表沒(méi)有找到
print(res)
----------------------------------
6
-1

res=x.rfind("egon")
print(res)
---------------------------
16

res=x.find("egon",0,3)
print(res)
------------------------------
-1

res = x.index("egon123") # 找不到則報(bào)錯(cuò)
print(res)
----------------------------------------------
    res = x.index("egon123") # 找不到則報(bào)錯(cuò)
ValueError: substring not found

2抄瓦、center,ljust,rjust,zfill

x = "yang"
res=x.center(50,'*')
print(res)
-----------------------------------------------------------------
***********************yang***********************

print(x.ljust(50,"*"))
print(x.rjust(50,"*"))
print(x.zfill(50))
print(x.rjust(50,"0"))
----------------------------------------------------------------------------
yang**********************************************
**********************************************yang
0000000000000000000000000000000000000000000000yang
0000000000000000000000000000000000000000000000yang

3潮瓶、expandtabs

print("hello\tworld".expandtabs(1))
------------------------------------
hello world

4、captalize,swapcase,title

print("hello world".capitalize())  # 使第一個(gè)字符大寫
print("aBcDeF".swapcase())  # 大小寫發(fā)轉(zhuǎn)
print("hello world".title())  # 每個(gè)單詞的首字母大寫闺鲸,若一些英文文章的題目有這方面的格式要求
---------------------------------
Hello world
ABcdEFg
Hello World

5筋讨、is其他

name='egon123'
print(name.isalnum()) #字符串是否由字母或數(shù)字組成
print(name.isalpha()) #字符串是否只由字母組成

name="aaainputbbbbb"
print(name.isidentifier()) # 如果字符串是有效標(biāo)識(shí)符,則 isidentifier() 方法返回 True摸恍,否則返回 False悉罕。

name="abc123"
print(name.islower())  # 判斷字符串是否全小寫
print(name.isupper())  # 判斷字符串是否全小寫

name="     "
print(name.isspace())  # 判斷字符串是否全空格

name="My Name Is Egon"
print(name.istitle())  # 判斷字符串是否符合標(biāo)題格式

6、is數(shù)字系列

# 在python3中
num1=b'4' #bytes
num2=u'4' #unicode,python3中無(wú)需加u就是unicode
num3='四' #中文數(shù)字
num4='Ⅳ' #羅馬數(shù)字

#1立镶、 isdigit判斷是否為純數(shù)字字符串(浮點(diǎn)型因?yàn)橛行?shù)點(diǎn)壁袄,不算純數(shù)字)
# bytes、unicode可判斷為True媚媒,中文與羅馬數(shù)字判斷為False
print(num1.isdigit())
print(num2.isdigit())
print(num3.isdigit())
print(num4.isdigit())
-------------------------------------
True
True
False
False

#2嗜逻、isnumeric檢測(cè)變量是否為數(shù)字或數(shù)字字符串
# unicode、中文數(shù)字缭召、羅馬數(shù)字判斷為True栈顷,bytes類型無(wú)此方法
print(num2.isnumeric())
print(num3.isnumeric())
print(num4.isnumeric())

#3逆日、isdecimal 判斷字符串是否只有十進(jìn)制字符串組成這種方法只存在于unicode對(duì)象,注意:定義一個(gè)十進(jìn)制字符串萄凤,只需要在字符串前添加 'u' 前綴即可室抽。
print(num2.isdecimal())
print(num3.isdecimal())
print(num4.isdecimal())

字符串型總結(jié):
1.存一個(gè)值
2.有序
3.不可變類型
二、列表類型靡努,list型
1.用途:按照索引存放多個(gè)值坪圾,可存放任意類型,索引反映位置
2.定義:在[ ]內(nèi)用逗號(hào)分割開(kāi)多個(gè)任意類型的元素

l = [1,2,'hello',[3,4]]

數(shù)據(jù)類型轉(zhuǎn)換:

res1=list("hello")
print(res1)
res2=list({"k1":1,"k2":2,"k3":3})
print(res2)
-------------------------------------
['h', 'e', 'l', 'l', 'o']
['k1', 'k2', 'k3']

3.常用操作與內(nèi)置方法:
3.1 優(yōu)先掌握的操作:
1惑朦、按索引存取值(正向存取+反向存取):即可以取可以改值,不能加值

l1 = [11,22,33,44,55]
print(l1[0])
print(l1[-1])
print(id(l1))
l1[0] = 100
print(id(l1))
l1[4] = 11111
--------------------------
11
55
1133439007104
1133439007104

2兽泄、切片(顧頭不顧尾,步長(zhǎng))

l1 = [11,22,[66,77]]
res=l1[2:4]
print(res)
print(l1)

2.1 淺copy:了解

l2=l1[:]
l2=l1.copy()

print(id(l1[0]),id(l1[1]),id(l1[2]))
print(id(l2[0]),id(l2[1]),id(l2[2]))

l1[0] = "aaa"
l1[1] = "bbb"
l1[2] = "ccc"
l1[2][0] = 8888

print(l2)

from copy import deepcopy
l3=deepcopy(l1)
print(id(l3[0]),id(l3[1]),id(l3[2]))

l1[2][0]=6666
print(l1)
print(l3)

# 示范1:
l1[0]=1000
print(l1)
print(l2)

# 示范2:
l1[-1][0]=666
print(l1)
print(l2)

# 了解:
res=l1[-1:-4:-1]
res=l1[::-1]
print(res)
列表類型淺拷貝.jpg

3漾月、長(zhǎng)度

l1 = [11,22,[66,77]]
print(len(l1))

4病梢、成員運(yùn)算in和not in

l1 = [111,22,[66,77]]
print([66,77] in l1)
print(66 in l1)
print(66 not in l1)

5、追加

方法一栅屏、append飘千,在列表最后追加元素,且括號(hào)內(nèi)會(huì)被視為一個(gè)元素,若加入列表栈雳,則直接追加列表,不會(huì)取出列表中的值再追加
l1=[11,22]
l1.append(33)
l1.append(44)
l1.append([55,66])
--------------------------------
[11, 22, 33, 44, [55, 66]]

方法二缔莲、insert在指定位置加入元素哥纫,將原來(lái)位置的元素?cái)D到后一個(gè)位置
l1 = [11,22,[66,77]]
l1.insert(0,'新元素')
print(l1)
-----------------------------
['新元素', 11, 22, [66, 77]]
l1 = [11,22,[66,77]]
l1.insert(1,'新元素')
print(l1)
----------------------------------
[11, '新元素', 22, [66, 77]]

6、刪除
6.1 萬(wàn)刪除痴奏,沒(méi)有返回值蛀骇,代表的是單純的刪除

l1=[11,22,[33,44]]
del l1[0]
print(l1)
del l1[1]
print(l1)
-----------------------------
[22, [33, 44]]
[22]

6.2 指定元素刪除,不是按照索引刪除,返回值為None(代表無(wú)返回值)读拆,代表的是單純的刪除

l1=[11,22,[33,44]]
res = l1.remove(11)  # 指定11這個(gè)元素刪除擅憔,不是按照索引刪除
print(res)
print(l1)
----------------------------------
None
[22, [33, 44]]

6.3 指定索引刪除,有返回值檐晕,代表的是取走操作

l1=[11,22,[33,44]]
res = l1.pop(0)
print(res)  # 返回值是自己取走的元素
print(l1)
--------------------------
11
[22, [33, 44]]

7暑诸、循環(huán)

l1=[11,222,[1,2]]
for x in l1:
    print(x)

3.2 需要掌握的操作:
1、clear辟灰,全清空

l1=[11,22,333,333,333,]
l1.clear()
print(l1)

2个榕、count,計(jì)算某個(gè)字符出現(xiàn)次數(shù)

l1=[11,22,33,33,33]
print(l1.count(33))  # 計(jì)算33這個(gè)字符出現(xiàn)了幾次
------------------

3芥喇、extend西采,有l(wèi)1,l2兩個(gè)列表继控,將l2列表的元素取出加入l1中

方法一械馆、直接用extend
l1 = [11,22,33]
l2 = [44,55,66]
l1.extend(l2)
print(l1)
------------------------
[11, 22, 33, 44, 55, 66]

方法二胖眷、用for循環(huán),將l2的值取出來(lái)霹崎,再用append追加
l1 = [11,22,33]
l2 = [44,55,66]
for i in l2:
    l1.append(i)
print(l1)
------------------------
[11, 22, 33, 44, 55, 66]

4.列表類型index方法使用:list.index(x[, start[, end]])瘦材,顧頭不顧尾

l1=[11,22,33,33,33,44]
res1=l1.index(33,0,2)  # 直接報(bào)錯(cuò),在索引0-2(不包括2)中沒(méi)有33元素
res2=l1.index(44)
print(res2)
----------------------------------
5

5.reverse:列表反轉(zhuǎn)
面試題
讓列表反轉(zhuǎn)的兩種方法:

方法一仿畸、使用reverse
l1=[11,22,"aaa",'bbb']
l1.reverse()
方法二食棕、利用列表切片
l1=l1[::-1]  # 兩個(gè):不能省略
print(l1)

6.sort 排序,默認(rèn)從小到大错沽,中間加入reverse=True可變成從大到小
字符串與整型之前無(wú)法比較簿晓,可以比較整型與浮點(diǎn)型,字符串與字符串可以比較

字符串與整型無(wú)法比較
# l1 = [11, 22, "aaa", 'bbb'] 
l1 = [11, 22, 1.2, 3.3]
l1.sort()  # 返回值為None
print(l1)
------------------------------------
[1.2, 3.3, 11, 22]

字符串之間比較
l1 = ['aa', '220', 'b', 'nn']
l1.sort()
print(l1)
-------------------------------
['220', 'aa', 'b', 'nn']

4千埃、列表類型總結(jié)
1.存多個(gè)值
2.有序
3.可變類型

三憔儿、元組類型
元組相當(dāng)于一個(gè)不可變的列表,除了不能存,取的操作同列表一樣
1放可、用途: 按照索引存放多個(gè)任意類型的值谒臼,索引反應(yīng)的是位置/順序

2、定義方式:在()內(nèi)用逗號(hào)分隔開(kāi)多個(gè)任意類下的值/元素
強(qiáng)調(diào):當(dāng)元組內(nèi)只有一個(gè)元素時(shí)耀里,必須加逗號(hào)

錯(cuò)誤方式
t=(10)
print(type(t))
----------------
<class 'int'>

正確方式
t=(10,)
print(type(t))
--------------------------
<class 'tuple'>

3蜈缤、常用操作+內(nèi)置的方法
優(yōu)先掌握的操作:
1、按索引取值(正向取+反向取):只能取

t=(10,1.1,"aaa",[11,22])
print(t[0])
----------------------
10

2冯挎、切片(顧頭不顧尾底哥,步長(zhǎng))

t=(11,22,33,44,55)
print(t[0:3])  # 取0,1房官,2三個(gè)索引的值
---------------------
11,22,33

3趾徽、長(zhǎng)度

t=(11,22,33,44,55)
print(len(t))

4、成員運(yùn)算in和not in

t=(11,22,33,44,55)
print(11 in t)

5翰守、循環(huán)

for x in t:
    print(x)

4孵奶、元組類型總結(jié):
1.存多個(gè)值
2.有序
3.不可變類型
四、字典類型
1蜡峰、用途:按key:value的形式存放多個(gè)任意類型的value了袁,key反映的是value的屬性
因?yàn)樽值涞膋ey是不能重復(fù)的,所以我們也可以利用這個(gè)特點(diǎn)來(lái)去重
2事示、定義方式:在{}內(nèi)用逗號(hào)分隔開(kāi)多個(gè)key:value早像,其中value可以是任意類型
而key必須是不可變的類型,通常是字符串類型,若key為可變類型肖爵,會(huì)報(bào)錯(cuò)顯示unhashable

d={'k1':111,'k1':222,'k1':3333}  # key重復(fù)卢鹦,只保留一個(gè)
print(d)
# 生成字典
d=dict(x=1,y=2,z=3)
print(d)

類型轉(zhuǎn)換

l=[("name","egon"),("age",18),["gender","male"]]
res=dict(l)
print(res)
# 空字典
d={}
print(type(d))

快速構(gòu)造字典,此處可能容易出面試題,尤其注意創(chuàng)建的value是可變類型時(shí)候冀自,向value加值會(huì)使得所有key對(duì)應(yīng)的value都加上值

dic = {}.fromkeys(['name','age','sex'],None)
print(dic)
dic1 = {}.fromkeys('hello',None)
print(dic1)
-------------------------------------------
{'name': None, 'age': None, 'sex': None}
{'h': None, 'e': None, 'l': None, 'o': None}  # 在此處我們就可以看到揉稚,字典的key是不能重復(fù)的,hello中有兩個(gè)l熬粗,此處只有一個(gè)l的key搀玖,所以可以利用字典去重

3、常用操作+內(nèi)置的方法
優(yōu)先掌握的操作:
1驻呐、按key存取值:可存可取
若key存在就取值灌诅,如不存在就加值,取值最好用get方法

d={'k1':111}
print(d['k1'])
d['k2']=222
print(d)

2含末、長(zhǎng)度len

d={'k1':111,'k2':222}
print(len(d))

3猜拾、成員運(yùn)算in和not in

d={'k1':111,'k2':222}
print('k1' in d)
print(111 in d)

4、刪除
6.1 del:萬(wàn)能刪除佣盒,沒(méi)有返回值挎袜,代表的是單純的刪除

d={'k1':111,'k2':222}
del d['k1']
print(d)

6.2 popitem:隨機(jī)刪,返回一個(gè)元組

d = {'k1':111,'k2':222,'k3':333}
res = d.popitem()
print(d,res)
-----------------------
{'k1': 111, 'k2': 222} ('k3', 333)

6.3 pop:指定key刪除,有返回值肥惭,代表的是取走操作

d={'k1':111,'k2':222}
res=d.pop('k1')
print(d)
print(res)
-----------------------------
{'k2': 222}
111

5盯仪、鍵keys(),值values()蜜葱,鍵值對(duì)items() 與for循環(huán)

d = {'k1':111,'k2':222,'k3':333}
for key in d.keys():
    print(key,end='  ')
print()
for value in d.values():
    print(value,end='  ')
print()
for k,v in d.items():
    print(k,v)
---------------------------------
k1  k2  k3  
111  222  333  
k1 111
k2 222
k3 333
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末全景,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子笼沥,更是在濱河造成了極大的恐慌蚪燕,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件奔浅,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡诗良,警方通過(guò)查閱死者的電腦和手機(jī)汹桦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)鉴裹,“玉大人舞骆,你說(shuō)我怎么就攤上這事【独螅” “怎么了督禽?”我有些...
    開(kāi)封第一講書人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)总处。 經(jīng)常有香客問(wèn)我狈惫,道長(zhǎng),這世上最難降的妖魔是什么鹦马? 我笑而不...
    開(kāi)封第一講書人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任胧谈,我火速辦了婚禮忆肾,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘菱肖。我一直安慰自己客冈,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布稳强。 她就那樣靜靜地躺著场仲,像睡著了一般。 火紅的嫁衣襯著肌膚如雪退疫。 梳的紋絲不亂的頭發(fā)上渠缕,一...
    開(kāi)封第一講書人閱讀 49,741評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音蹄咖,去河邊找鬼褐健。 笑死,一個(gè)胖子當(dāng)著我的面吹牛澜汤,可吹牛的內(nèi)容都是我干的蚜迅。 我是一名探鬼主播,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼俊抵,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼谁不!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起徽诲,我...
    開(kāi)封第一講書人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤刹帕,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后谎替,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體偷溺,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年钱贯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了挫掏。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡秩命,死狀恐怖尉共,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情弃锐,我是刑警寧澤袄友,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站霹菊,受9級(jí)特大地震影響剧蚣,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一券敌、第九天 我趴在偏房一處隱蔽的房頂上張望唾戚。 院中可真熱鬧,春花似錦待诅、人聲如沸叹坦。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)募书。三九已至,卻和暖如春测蹲,著一層夾襖步出監(jiān)牢的瞬間莹捡,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工扣甲, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留篮赢,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓琉挖,卻偏偏與公主長(zhǎng)得像启泣,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子示辈,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348