Python數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)知識總結(jié)

一、Python中的數(shù)字類型

在這一部分里漩仙,我們將學(xué)習(xí)Python中數(shù)字類型和如何使用數(shù)字類型额划。具體我我們將學(xué)到:

1)Python中數(shù)字類型的細(xì)分

2)基本的數(shù)學(xué)運(yùn)算

3)經(jīng)典除法和地板除法的區(qū)別

4)Python中的賦值

1.數(shù)字類型

Python有許多不同的數(shù)字類型細(xì)分,這里我們只學(xué)習(xí)整數(shù)(integer)和浮點(diǎn)數(shù)(float)數(shù)字類型乍赫。

整數(shù)通俗理解就是日常數(shù)學(xué)的整數(shù)温峭,又分為正整數(shù)和負(fù)整數(shù)猛铅。比如2和-2都是Python的整數(shù)類型。

Python中的浮點(diǎn)數(shù)很容易被識別凤藏,一般他們帶有小數(shù)點(diǎn)或者帶有“e”奸忽。比如2.0和-2.1就是浮點(diǎn)數(shù)。

4E2也是一個浮點(diǎn)數(shù)清笨。(4E2=4*10^2=400.0)月杉。

2.基本數(shù)學(xué)運(yùn)算


基本數(shù)學(xué)運(yùn)算1


基本數(shù)學(xué)運(yùn)算2

3. Python的賦值

一般我們使用一個等號做賦值。等號左邊是變量名稱抠艾,等號右邊是賦值內(nèi)容苛萎。讓我們看下面的例子。


賦值

以下為變量名命名規(guī)則:

1)變量名不能以數(shù)字開頭;

2)變量名中不能用空格腌歉,可以用"_"代替蛙酪,比如my_name才是正確的變量名命名方法;

3)在變量名中不能使用以下符號 :'",<>/?|\()!@#$%^&*~-+

4)根據(jù)PEP8,變量名最好小寫;

5) 變量名中盡量不出現(xiàn)小寫的字母l和字母O翘盖,因?yàn)槿菀缀蛿?shù)字1數(shù)字0混淆

6)避免用Python的關(guān)鍵字做變量名


變量命名展示

通過type()查看數(shù)據(jù)類型


查看數(shù)據(jù)類型

二桂塞、Python中的字符串類型

Python的字符串用于記錄文本信息。字符串實(shí)際是一串序列或者說Python按一定的次序記錄字符串的信息馍驯。比如阁危,對于“Hello”這個字符串,Python能識別出其為字符串以及它的特定順序汰瘫。這意味著我們可以通過下標(biāo)取抓取“Hello”內(nèi)部的字母狂打。這一點(diǎn)非常關(guān)鍵。

關(guān)于字符串部分混弥,我們將學(xué)習(xí):

1)創(chuàng)建字符串

2)打印字符串

3)字符串索引和切片

4)字符串不變性

5)字符串常用函數(shù)方法

6)格式化打印

1趴乡、創(chuàng)建字符串

通過單引號和雙引號創(chuàng)建字符串


創(chuàng)建字符串

2.打印字符串

使用jupyter notebook可以直接輸出字符串,但這并不是正確的打印字符串的方法蝗拿。正確的打印字符串的方法應(yīng)該是使用print()函數(shù)晾捏。


打印字符串

3.字符串索引和切片

前面提到字符串是有序序列,意味著Python可以下標(biāo)進(jìn)行索引哀托。

在Python中惦辛,我們用變量名[]進(jìn)行索引。[]里的數(shù)字又叫下標(biāo)仓手,Python的下標(biāo)是從0開始裙品,這個非常重要。下面我們通過例子來掌握俗或。

先創(chuàng)建字符串


創(chuàng)建字符串

開始索引和切片


索引和切片

請注意s[:3]指的是輸出0-2下標(biāo)的字符,并不包括3,所以是'hel'


切片2


切片3

4.字符串不變性

字符串有一個重要的屬性是不變性,也就是說字符串一旦創(chuàng)建,其內(nèi)部的元素不可以改變.我們通過例子來看.


字符串不變性

雖然字符串內(nèi)部不可改變,但是外部卻可以進(jìn)行一些操作,比如拼接,比如做簡單數(shù)學(xué)運(yùn)算.見例子.


字符串操作

5.字符串常用函數(shù)方法

常用字符串函數(shù)方法包括字符串長度、將字符串全部變?yōu)榇髮懰晖⒆址孔優(yōu)樾懶廖俊⒆址每崭穹糸_。


字符串常用函數(shù)方法

6.格式化打印

字符串格式化可以讓你往字符串插入元素而不需要使用拼接的方法.用一個例子來進(jìn)行直觀的對比,兩種方法的差別在哪里?

player = ' thomas'

points = '33'

'last night, ' + player + 'scored ' + str(score) + 'points' #拼接的方法

f'last night, {player} scored {points} points.' #字符串格式化


字符串格式化打印

6.1使用占位符進(jìn)行格式化打印

6.1.1 你可以使用%s往你的語句里插入字符串.%又稱作字符串格式化運(yùn)算符.

print("I am going to inject %s here." %'something')



占位符格式化打印

6.1.2通過%后接元組實(shí)現(xiàn)多個元素插入

print("I am going to print %s text here, and %s text here." %('some', 'more'))


占位符格式化打印2

6.1.3 甚至可以通過變量名稱來傳遞進(jìn)行格式化打印

x, y = 'some', 'more'

print("I am going to print %s text here, and %s text here." %(x, y))


占位符格式化打印3

6.1.3 %r %s %d的區(qū)別

%r會把字符串括住的引號也打印出來干像,%d和%s都可以格式化打印整數(shù)和浮點(diǎn)數(shù)帅腌,%d會自動將數(shù)字取整數(shù)部分(注意是取整而不是四舍五入)。

%r %s %d的區(qū)別

6.1.4 浮點(diǎn)數(shù)的格式化打印和精度問題

浮點(diǎn)數(shù)使用例如%5.2f來進(jìn)行格式化打印麻汰。這里面速客,小數(shù)點(diǎn)前面的數(shù)字表示輸出列數(shù)數(shù)字位數(shù)大于它時(shí),按實(shí)際位數(shù)輸出五鲫,小數(shù)點(diǎn)前空缺也是小數(shù)點(diǎn)后面的數(shù)字表示輸出的小數(shù)點(diǎn)位數(shù)溺职,如果位數(shù)不足就會四舍五入,如果位數(shù)不夠顯示就會在后面補(bǔ)0.


浮點(diǎn)數(shù)格式化打印

6.1.6混合格式化打印

print(‘First:%s, Second:%5.2f, Third: %r' %('hi!', 3.1415, 'bye!'))


混合格式化打印


6.2 通過.format()方法來進(jìn)行格式化打印

6.2.1 相比占位符格式化打印浪耘,.format()打印有以下優(yōu)勢乱灵。

6.2.1.1 插入的數(shù)據(jù)可以通過下標(biāo)來索引

print(’The {2}, {1}, {0}' .format('fox', 'brown', 'quick'))



索引格式化打印

6.2.1.2 插入的元素可以賦予關(guān)鍵字

print('First Object:{a}, Second Object:,Third Object:{c}'.format(a=1,b='two',c=12.3))


插入的元素可以賦予關(guān)鍵字

6.2.1.3 插入的元素可以重復(fù)使用七冲,避免多次輸入


避免元素多次輸入

6.2.2 .format()的對齊痛倚、填充和精度

通過{}你可以指定字段長度、指定對齊方式和指定取整精度


定字段長度澜躺、指定對齊方式和指定取整精度

.format()默認(rèn)文字左對齊蝉稳,數(shù)字右對齊,你可以<,^, 或者> 來調(diào)整實(shí)現(xiàn)左對齊掘鄙、居中和右對齊耘戚。


對齊方式

在對齊處加上填充符號


在對齊處加上填充符號

.format() 的精度和占位符格式化打印處理方法一樣


.format() 的精度

6.3f-strings格式打印方法

python3.6引入了f-strings格式化打印方法,和.format()相比,f-strings方法可以直接將外部變量整個插入到字符串里.如果想獲得字符串外部的引號,可以使用!r.


f-strings格式化打印方法

f-strings使用"result: {value:{width}.{precision}}"來表示精度


f-strings精度

請注意使用f-strings方法,精度指的是所有的數(shù)字個數(shù)而不是小數(shù)點(diǎn)后的數(shù)字個數(shù).這和科學(xué)計(jì)數(shù)以及統(tǒng)計(jì)分析類似.可惜的是,f-strings不會對齊向右自動填充.


f-strings精度2

可以通過結(jié)合f-strings和.format()的方法使數(shù)字對齊且向右填充


精度


三通铲、Python中的列表類型

列表是Python中最應(yīng)該被稱為有序序列的概念.而且和前面的字符串不同,列表中的元素是可以改變的.這部分里我們將學(xué)到:

1)創(chuàng)建列表

2)列表索引和切片

3)基本函數(shù)方法

4)列表嵌套

5)列表解析

1.創(chuàng)建列表

列表用[]表示,[]里面的每一個元素用","隔開.

列表內(nèi)的元素可以裝不同的數(shù)據(jù)類型.


創(chuàng)建列表

2.列表索引和切片

列表的索引和切片和字符串一樣.我們來看一些例子.


列表索引和切片

我們可以用+ 來拼接列表,就像字符串一樣.


拼接列表

請注意,拼接只是臨時(shí)并不會改變my_list.要采用重新賦值的方法才能永遠(yuǎn)改變my_list


重新賦值

我們可以同樣用*給列表做簡單運(yùn)算


計(jì)算


3.基本函數(shù)方法

你可能會將Python中的列表和數(shù)組聯(lián)系起來,但是Python中的列表靈活很多,第一,它沒有大小限制,第二它也沒有類型限制.

創(chuàng)建一個新列表


創(chuàng)建新列表

使用append()在列表末尾添加新元素


append

使用pop()將列表末尾的元素刪除,同時(shí)pop關(guān)鍵字刪除也可以通過下標(biāo)索引指定刪除的元素


pop

如果下標(biāo)對應(yīng)沒有響相應(yīng)的元素,程序會報(bào)錯


報(bào)錯

可以使用reverse()來將元素順序顛倒,可以使用sort()將元素按照字母順序排列


reverse&sort

4.列表嵌套

Python一個很大的靈活性就是數(shù)據(jù)結(jié)構(gòu)支持嵌套,也就是說數(shù)據(jù)結(jié)構(gòu)里含數(shù)據(jù)結(jié)構(gòu).比如一個列表里面的元素是另一個列表.


列表嵌套

我們可以用下標(biāo)抓取元素,不過現(xiàn)在因?yàn)榱斜砬短?元素有兩層結(jié)構(gòu),分別是矩陣?yán)锏脑?矩陣?yán)镌氐脑?


抓取元素

5.列表解析

列表解析可以迅速構(gòu)造列表,理解列表解析需要了解for loop循環(huán).我們使用列表解析來抓取矩陣中的第一行的每一個元素.


列標(biāo)解析


四毕莱、Python中的字典類型

字典是一種映射.和字符串以及列表通過元素位置不同定位不同,字典是無序的而是由不同的鍵-值對構(gòu)成.通過找到鍵就可以找到相應(yīng)的值.字典里的值可以是任何Python的類型,因此應(yīng)用起來非常的靈活.

在這部分里我們將學(xué)到:

1.) 創(chuàng)建字典

2.) 提取字典里的信息

3.) 字典嵌套

4.) 常用字典函數(shù)方法

1.創(chuàng)建字典



創(chuàng)建字典

字典對于數(shù)據(jù)類型非常寬容,可以放置任何的數(shù)據(jù)類型颅夺。比如:


字典內(nèi)部數(shù)據(jù)

將字典內(nèi)部的值進(jìn)行簡單數(shù)學(xué)運(yùn)算


簡單數(shù)學(xué)運(yùn)算

通過賦值來創(chuàng)建字典


賦值創(chuàng)建新字典

2.字典嵌套

簡單理解,就是字典里面再包含字典,看下面的例子



字典嵌套

3.常用字典函數(shù)方法


常用字典函數(shù)方法


五朋截、Python中的元組類型

元組和列表非常相似,不同的是元組是不能更改的,在表示不能更改的元素比如日期、時(shí)間等時(shí)使用元組吧黄。因?yàn)閷W(xué)過列表的相關(guān)知識部服,元組和列表的方法很相似。

1.創(chuàng)建元組


創(chuàng)建元組

2.基本函數(shù)方法

元組也有一些內(nèi)置的函數(shù)方法拗慨,但是不如列表那么多廓八。


基本函數(shù)方法

3.不可改變性

記住元組是不能改變的,一旦創(chuàng)建好的就只能保持原來的樣子赵抢,刪除元組元素或嘗試增加元組元素都會報(bào)錯剧蹂。


不可改變性

六.Python中的集合和布爾值類型

Python中的集合和布爾值類型并不是重點(diǎn),可以快速了解一下.

1.集合

set是一個無序且不重復(fù)的元素集合。


集合

請注意雖然有{},但并不是字典,雖然你可以把集合比作只有鍵的字典.我們知道集合的元素是唯一的不重復(fù)的,那如果我們嘗試將重復(fù)的元素添加到集合里會是什么情況呢?


集合2

集合主要用于去重


去重

2.布林值

所謂 布林值 ( Boolean Value ) 就是一種只有 true 或 false 兩種值的類型.


布林值

可以利用比較運(yùn)算符創(chuàng)建布林值


運(yùn)算符創(chuàng)建布林值
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末烦却,一起剝皮案震驚了整個濱河市宠叼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌其爵,老刑警劉巖冒冬,帶你破解...
    沈念sama閱讀 212,599評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異摩渺,居然都是意外死亡简烤,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,629評論 3 385
  • 文/潘曉璐 我一進(jìn)店門摇幻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來横侦,“玉大人挥萌,你說我怎么就攤上這事≌筛溃” “怎么了瑞眼?”我有些...
    開封第一講書人閱讀 158,084評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長棵逊。 經(jīng)常有香客問我伤疙,道長,這世上最難降的妖魔是什么辆影? 我笑而不...
    開封第一講書人閱讀 56,708評論 1 284
  • 正文 為了忘掉前任徒像,我火速辦了婚禮,結(jié)果婚禮上蛙讥,老公的妹妹穿的比我還像新娘锯蛀。我一直安慰自己,他們只是感情好次慢,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,813評論 6 386
  • 文/花漫 我一把揭開白布旁涤。 她就那樣靜靜地躺著,像睡著了一般迫像。 火紅的嫁衣襯著肌膚如雪劈愚。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,021評論 1 291
  • 那天闻妓,我揣著相機(jī)與錄音菌羽,去河邊找鬼。 笑死由缆,一個胖子當(dāng)著我的面吹牛注祖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播均唉,決...
    沈念sama閱讀 39,120評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼是晨,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了舔箭?” 一聲冷哼從身側(cè)響起署鸡,我...
    開封第一講書人閱讀 37,866評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎限嫌,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體时捌,經(jīng)...
    沈念sama閱讀 44,308評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡怒医,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,633評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了奢讨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片稚叹。...
    茶點(diǎn)故事閱讀 38,768評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出扒袖,到底是詐尸還是另有隱情塞茅,我是刑警寧澤,帶...
    沈念sama閱讀 34,461評論 4 333
  • 正文 年R本政府宣布季率,位于F島的核電站野瘦,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏飒泻。R本人自食惡果不足惜鞭光,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,094評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望泞遗。 院中可真熱鬧惰许,春花似錦、人聲如沸史辙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,850評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽聊倔。三九已至晦毙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間方库,已是汗流浹背结序。 一陣腳步聲響...
    開封第一講書人閱讀 32,082評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留纵潦,地道東北人徐鹤。 一個月前我還...
    沈念sama閱讀 46,571評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像邀层,于是被迫代替她去往敵國和親返敬。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,666評論 2 350

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