5.0蒿叠、python基礎(chǔ)數(shù)據(jù)類(lèi)型

python基礎(chǔ)二(基礎(chǔ)數(shù)據(jù)類(lèi)型)

一、引子

1 什么是數(shù)據(jù)蚣常?

  x=10市咽,10是我們要存儲(chǔ)的數(shù)據(jù)

2 為何數(shù)據(jù)要分不同的類(lèi)型

  數(shù)據(jù)是用來(lái)表示狀態(tài)的,不同的狀態(tài)就應(yīng)該用不同的類(lèi)型的數(shù)據(jù)去表示

3 數(shù)據(jù)類(lèi)型

  數(shù)字? 字符串? ? 列表? 元組? 字典? ? 集合

二抵蚊、基礎(chǔ)數(shù)據(jù)類(lèi)型

2.1數(shù)字int

數(shù)字主要是用于計(jì)算用的施绎,使用方法并不是很多溯革,就記住一種就可以:

#bit_length() 當(dāng)十進(jìn)制用二進(jìn)制表示時(shí),最少使用的位數(shù)

v = 11

data = v.bit_length()

print(data)

2.2布爾值bool

布爾值就兩種:True谷醉,F(xiàn)alse致稀。就是反應(yīng)條件的正確與否

真 ? 1 ? True

假 ? 0 ? False ?

2.3字符串str

2.3.1、字符串的索引與切片俱尼。

?索引即下標(biāo)抖单,就是字符串組成的元素從第一個(gè)開(kāi)始,初始索引為0以此類(lèi)推遇八。

a = 'ABCDEFGHIJK'

print(a[0])

print(a[3])

print(a[5])

print(a[7])

切片就是通過(guò)索引(索引:索引:步長(zhǎng))截取字符串的一段臭猜,形成新的字符串(原則就是顧頭不顧腚)。

a = 'ABCDEFGHIJK'

print(a[0:3])

print(a[2:5])

print(a[0:]) #默認(rèn)到最后

print(a[0:-1]) # -1 是列表中最后一個(gè)元素的索引押蚤,但是要滿足顧頭不顧腚的原則,所以取不到K元素

print(a[0:5:2]) #加步長(zhǎng)

print(a[5:0:-2]) #反向加步長(zhǎng)

2.3.2羹应、字符串常用方法

#captalize,swapcase,title

print(name.capitalize()) #首字母大寫(xiě)

print(name.swapcase()) #大小寫(xiě)翻轉(zhuǎn)

msg='egon say hi'

print(msg.title()) #每個(gè)單詞的首字母大寫(xiě)

# 內(nèi)同居中揽碘,總長(zhǎng)度,空白處填充

ret2 = a1.center(20,"*")

print(ret2)

#數(shù)字符串中的元素出現(xiàn)的個(gè)數(shù)园匹。

# ret3 = a1.count("a",0,4) # 可切片

# print(ret3)

a2 = "hqw\t"

#\t前面的補(bǔ)全

# 默認(rèn)將一個(gè)tab鍵變成8個(gè)空格雳刺,如果tab前面的字符長(zhǎng)度不足8個(gè),則補(bǔ)全8個(gè)裸违,如果tab鍵前面的字符長(zhǎng)度超過(guò)8個(gè)不足16個(gè)則補(bǔ)全16個(gè)掖桦,以此類(lèi)推每次補(bǔ)全8個(gè)。

ret4 = a2.expandtabs()

print(ret4)

a4 = "dkfjdkfasf54"

#startswith 判斷是否以...開(kāi)頭

#endswith 判斷是否以...結(jié)尾

# ret4 = a4.endswith('jdk',3,6) # 顧頭不顧腚

# print(ret4) # 返回的是布爾值

# ret5 = a4.startswith("kfj",1,4)

# print(ret5)

#尋找字符串中的元素是否存在

# ret6 = a4.find("fjdk",1,6)

# print(ret6) # 返回的找到的元素的索引供汛,如果找不到返回-1

# ret61 = a4.index("fjdk",4,6)

# print(ret61) # 返回的找到的元素的索引枪汪,找不到報(bào)錯(cuò)。

#split 以什么分割怔昨,最終形成一個(gè)列表此列表不含有這個(gè)分割的元素雀久。

# ret9 = 'title,Tilte,atre,'.split('t')

# print(ret9)

# ret91 = 'title,Tilte,atre,'.rsplit('t',1)

# print(ret91)

#format的三種玩法 格式化輸出

res='{} {} {}'.format('egon',18,'male')

res='{1} {0} {1}'.format('egon',18,'male')

res='{name} {age} {sex}'.format(sex='male',name='egon',age=18)

#strip

name='*egon**'

print(name.strip('*'))

print(name.lstrip('*'))

print(name.rstrip('*'))

#replace (替換)

replace(old, new, count)

replace('被替換的字符串','要替換的字符串',一組字符串當(dāng)中替換的次數(shù))

name='alex say :i have one tesla,my name is alex'

print(name.replace('alex','SB',1))

輸出:SB say :i have one tesla,my name is alex

name='alex say :i have one tesla,my name is alex'

print(name.replace('alex','SB',2))

輸出:SB say :i have one tesla,my name is SB

#####is系列

name='jinxin123'

print(name.isalnum()) #字符串由字母或數(shù)字組成

print(name.isalpha()) #字符串只由字母組成

print(name.isdigit()) #字符串只由數(shù)字組成

?2.4元祖tuple

元組被稱為只讀列表,即數(shù)據(jù)可以被查詢趁舀,但不能被修改赖捌,所以,字符串的切片操作同樣適用于元組矮烹。例:(1越庇,2,3)("a","b","c")

?2.5列表list

列表是python中的基礎(chǔ)數(shù)據(jù)類(lèi)型之一奉狈,其他語(yǔ)言中也有類(lèi)似于列表的數(shù)據(jù)類(lèi)型卤唉,比如js中叫數(shù)組,他是以[]括起來(lái)仁期,每個(gè)元素以逗號(hào)隔開(kāi)搬味,而且他里面可以存放各種數(shù)據(jù)類(lèi)型比如:

li = [‘a(chǎn)lex’,123,Ture,(1,2,3,’wusir’),[1,2,3,’小明’,],{‘name’:’alex’}]

列表相比于字符串境氢,不僅可以儲(chǔ)存不同的數(shù)據(jù)類(lèi)型,而且可以儲(chǔ)存大量數(shù)據(jù)碰纬,32位python的限制是 536870912 個(gè)元素,64位python的限制是 1152921504606846975 個(gè)元素萍聊。而且列表是有序的,有索引值悦析,可切片寿桨,方便取值。

2.5.1强戴、增亭螟。

li = [1,'a','b',2,3,'a']

# li.insert(0,55) #按照索引去增加

# print(li)

#

# li.append('aaa') #增加到最后

# li.append([1,2,3]) #增加到最后

# print(li)

#

# li.extend(['q,a,w']) #迭代的去增

# li.extend(['q,a,w','aaa'])

# li.extend('a')

# li.extend('abc')

# li.extend('a,b,c')

# print(li)

2.5.2、刪

# l1 = li.pop(1) #按照位置去刪除骑歹,有返回值

# print(l1)

# del li[1:3] #按照位置去刪除预烙,也可切片刪除沒(méi)有返回值。

# print(li)

# li.remove('a') #按照元素去刪除

# print(li)

# li.clear() #清空列表

2.5.3道媚、改

# 改

# li = [1,'a','b',2,3,'a']

# li[1] = 'dfasdfas'

# print(li)

# li[1:3] = ['a','b']

# print(li)

2.5.4扁掸、查

切片去查,或者循環(huán)去查最域。

2.5.5谴分、其他操作

count(數(shù))(方法統(tǒng)計(jì)某個(gè)元素在列表中出現(xiàn)的次數(shù))。

a = ["q","w","q","r","t","y"]

print(a.count("q"))

index(方法用于從列表中找出某個(gè)值第一個(gè)匹配項(xiàng)的索引位置)

a = ["q","w","r","t","y"]

print(a.index("r"))

sort (方法用于在原位置對(duì)列表進(jìn)行排序)

reverse (方法將列表中的元素反向存放)

a = [2,1,3,4,5]

a.sort()# 他沒(méi)有返回值镀脂,所以只能打印a

print(a)

a.reverse()#他也沒(méi)有返回值牺蹄,所以只能打印a

print(a)

?2.6字典dict。

  字典是python中唯一的映射類(lèi)型薄翅,采用鍵值對(duì)(key-value)的形式存儲(chǔ)數(shù)據(jù)沙兰。python對(duì)key進(jìn)行哈希函數(shù)運(yùn)算,根據(jù)計(jì)算的結(jié)果決定value的存儲(chǔ)地址翘魄,所以字典是無(wú)序存儲(chǔ)的僧凰,且key必須是可哈希的∈焱瑁可哈希表示key必須是不可變類(lèi)型训措,如:數(shù)字、字符串光羞、元組绩鸣。

  字典(dictionary)是除列表意外python之中最靈活的內(nèi)置數(shù)據(jù)結(jié)構(gòu)類(lèi)型。列表是有序的對(duì)象結(jié)合纱兑,字典是無(wú)序的對(duì)象集合呀闻。兩者之間的區(qū)別在于:字典當(dāng)中的元素是通過(guò)鍵來(lái)存取的,而不是通過(guò)偏移存取潜慎。

2.6.1捡多、增

# dic['li'] = ["a","b","c"]

# print(dic)

# setdefault 在字典中添加鍵值對(duì)蓖康,如果只有鍵那對(duì)應(yīng)的值是none,但是如果原字典中存在設(shè)置的鍵值對(duì),則他不會(huì)更改或者覆蓋垒手。

# dic.setdefault('k','v')

# print(dic) # {'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'}

# dic.setdefault('k','v1') # {'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'}

# print(dic)

2.6.2蒜焊、刪

# dic_pop = dic.pop("a",'無(wú)key默認(rèn)返回值') # pop根據(jù)key刪除鍵值對(duì),并返回對(duì)應(yīng)的值科贬,如果沒(méi)有key則返回默認(rèn)返回值

# print(dic_pop)

# del dic["name"] # 沒(méi)有返回值泳梆。

# print(dic)

# dic_pop1 = dic.popitem() # 隨機(jī)刪除字典中的某個(gè)鍵值對(duì),將刪除的鍵值對(duì)以元祖的形式返回

# print(dic_pop1) # ('name','jin')

# dic_clear = dic.clear() # 清空字典

# print(dic,dic_clear) # {} None

2.6.3榜掌、改

# 改

# dic = {"name":"jin","age":18,"sex":"male"}

# dic2 = {"name":"alex","weight":75}

# dic2.update(dic) # 將dic所有的鍵值對(duì)覆蓋添加(相同的覆蓋优妙,沒(méi)有的添加)到dic2中

# print(dic2)

2.6.4、查

# value1 = dic["name"] # 沒(méi)有會(huì)報(bào)錯(cuò)

# print(value1)

#

# value2 = dic.get("djffdsafg","默認(rèn)返回值") # 沒(méi)有可以返回設(shè)定的返回值

# print(value2)

2.6.5憎账、其他操作

# item = dic.items()

# print(item,type(item)) # dict_items([('name', 'jin'), ('sex', 'male'), ('age', 18)]) <class 'dict_items'>

# 這個(gè)類(lèi)型就是dict_items類(lèi)型套硼,可迭代的

# keys = dic.keys()

# print(keys,type(keys)) # dict_keys(['sex', 'age', 'name']) <class 'dict_keys'>

# values = dic.values()

# print(values,type(values)) # dict_values(['male', 18, 'jin']) <class 'dict_values'> 同上

字典的循環(huán)

# dic = {"name":"jin","age":18,"sex":"male"}

# for key in dic:

# print(key)

# for item in dic.items():

# print(item)

# for key,value in dic.items():

# print(key,value)

三,基礎(chǔ)數(shù)據(jù)類(lèi)型的總結(jié)

按存儲(chǔ)空間的占用分(從低到高)

數(shù)字

字符串

集合:無(wú)序胞皱,即無(wú)序存索引相關(guān)信息? set()? {? }

元組:有序邪意,需要存索引相關(guān)信息,不可變? (? )

列表:有序朴恳,需要存索引相關(guān)信息,可變允蚣,需要處理數(shù)據(jù)的增刪改? [? ]

字典:無(wú)序于颖,需要存key與value映射的相關(guān)信息,可變嚷兔,需要處理數(shù)據(jù)的增刪改? {? }

按存值個(gè)數(shù)區(qū)分

標(biāo)量/原子類(lèi)型數(shù)字森渐,字符串

容器類(lèi)型列表,元組冒晰,字典

按可變不可變區(qū)分

可變列表同衣,字典

不可變數(shù)字,字符串壶运,元組耐齐,布爾值


按訪問(wèn)順序區(qū)分

直接訪問(wèn)數(shù)字

順序訪問(wèn)(序列類(lèi)型)字符串,列表蒋情,元組

key值訪問(wèn)(映射類(lèi)型)字典

四埠况,其他(for,enumerate棵癣,range)

for循環(huán):用戶按照順序循環(huán)可迭代對(duì)象的內(nèi)容

msg = '是全國(guó)范圍內(nèi)最好的'

for item in msg:

print(item)

li = ['alex','銀角','女神','egon','太白']

for i in li:

print(i)

dic = {'name':'太白','age':18,'sex':'man'}

for k,v in dic.items():

print(k,v)

enumerate:枚舉辕翰,對(duì)于一個(gè)可迭代的(iterable)/可遍歷的對(duì)象(如列表、字符串)狈谊,enumerate將其組成一個(gè)索引序列喜命,利用它可以同時(shí)獲得索引和值

li = ['alex','銀角','女神','egon','太白']

for i in enumerate(li):

print(i)

for index,name in enumerate(li,1):

print(index,name)

for index, name in enumerate(li, 100): # 起始位置默認(rèn)是0沟沙,可更改

print(index, name)

range:指定范圍,生成指定數(shù)字

for i in range(1,10):

print(i)

for i in range(1,10,2): # 步長(zhǎng)

print(i)

for i in range(10,1,-2): # 反向步長(zhǎng)

print(i)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末壁榕,一起剝皮案震驚了整個(gè)濱河市矛紫,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌护桦,老刑警劉巖含衔,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異二庵,居然都是意外死亡贪染,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)催享,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)杭隙,“玉大人,你說(shuō)我怎么就攤上這事因妙√翟鳎” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵攀涵,是天一觀的道長(zhǎng)铣耘。 經(jīng)常有香客問(wèn)我,道長(zhǎng)以故,這世上最難降的妖魔是什么蜗细? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮怒详,結(jié)果婚禮上炉媒,老公的妹妹穿的比我還像新娘。我一直安慰自己昆烁,他們只是感情好吊骤,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著静尼,像睡著了一般白粉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鼠渺,一...
    開(kāi)封第一講書(shū)人閱讀 51,190評(píng)論 1 299
  • 那天蜗元,我揣著相機(jī)與錄音,去河邊找鬼系冗。 笑死奕扣,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的掌敬。 我是一名探鬼主播惯豆,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼池磁,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了楷兽?” 一聲冷哼從身側(cè)響起地熄,我...
    開(kāi)封第一講書(shū)人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎芯杀,沒(méi)想到半個(gè)月后端考,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡揭厚,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年却特,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片筛圆。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡裂明,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出太援,到底是詐尸還是另有隱情一铅,我是刑警寧澤色乾,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布闻蛀,位于F島的核電站主巍,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏碱蒙。R本人自食惡果不足惜荠瘪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望振亮。 院中可真熱鬧巧还,春花似錦鞭莽、人聲如沸坊秸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)褒搔。三九已至,卻和暖如春喷面,著一層夾襖步出監(jiān)牢的瞬間星瘾,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工惧辈, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留琳状,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓盒齿,卻偏偏與公主長(zhǎng)得像念逞,于是被迫代替她去往敵國(guó)和親困食。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容