Python入門(mén)_淺談數(shù)據(jù)結(jié)構(gòu)的4種基本類(lèi)型
數(shù)據(jù)結(jié)構(gòu):通俗點(diǎn)說(shuō),就是儲(chǔ)存大量數(shù)據(jù)的容器。這里主要介紹Python的4種基本數(shù)據(jù)結(jié)構(gòu):列表、字典、元組、集合。
格式如下:
列表:list = [val1,val2,val3,val4],用中括號(hào);
字典:dict = {key1:val1,key2:val2},大括號(hào),且每個(gè)元素是帶有冒號(hào)的key與val的對(duì)應(yīng)關(guān)系組;
元組:tuple = (val1,val2,val3,val4),小括號(hào);
集合:set = {val1,val2,val3,val4},大括號(hào)。
1. 列表:
list = [val1,val2,val3,val4]
列表最顯著的特征是:
列表中每個(gè)元素都是可變的;
列表中的元素都是有序的,即每個(gè)元素都有一個(gè)位置;
列表可以容納Python中的任何對(duì)象。
接下來(lái)看下列表的增刪改查。
增:
1 list = [1,'dwd',3.6] 2 list.insert(0,'Python') 3 print(list)
用insert方法可以實(shí)現(xiàn)在列表中增加元素。insert方法需要寫(xiě)明增加在哪個(gè)位置和增加的內(nèi)容,新增元素的實(shí)際位置是在指定位置元素之前的位置;如果指定的位置不存在,默認(rèn)會(huì)增加在列表末尾。
1 list = [1,'dwd',3.6] 2 list[0:0] = [9] 3 # 【0:0】是指在list中的第1個(gè)位置插入新元素 4 list[3:3] = ['a'] 5 # 【3:3】是指在list中的第4個(gè)位置插入新元素 6 print(list)
上面說(shuō)到的這兩種方法都是添加單個(gè)元素,除了添加單個(gè)元素外,還可以添加多個(gè)元素,用extend方法來(lái)實(shí)現(xiàn)。
1 list_a = [1,'dwd',3.6] 2 list_b = ['Python',56,'game'] 3 list_a.extend(list_b) 4 # extend方法用于在列表末尾一次性追加另一個(gè)列表中的多個(gè)值 5 print(list_a)
刪:
1 list = [1,'dwd',3.6] 2 list.remove('dwd') 3 print(list)
刪除列表中的元素除了用上面的remove方法來(lái)實(shí)現(xiàn)外,也可以用del關(guān)鍵字來(lái)聲明:
1 list = [1,'dwd',3.6] 2 del list[0:2] 3 # 【0:2】是刪除第1和第2個(gè)位置的元素 4 print(list)
改:
1 list = [1,'dwd',3.6] 2 list[2] = 7 3 list[0] = 'start' 4 print(list)
如果想要替換掉列表中的某個(gè)元素,可以直接給列表某位置的元素重新賦值,list[2]指list列表中的第3個(gè)元素。
查:
列表的索引與之前文章《Python入門(mén)_淺談字符串的分片與索引、字符串的方法》中提到的字符串的索引類(lèi)似,同樣是分正反兩種索引方式,可以從前往后,也可以從后往前索引。比如:
list = [1,'dwd',3.6] print(list[1]) # 打印第2個(gè)位置的元素 print(list[-1]) # 打印倒數(shù)第一個(gè)位置的元素 print(list[:2]) # 打印第1和第2個(gè)元素 print(list[1:]) # 打印第2到最后一個(gè)的元素
但如果想查看某個(gè)元素的位置,就不適合用這種方式,程序會(huì)報(bào)錯(cuò)。因?yàn)榱斜碇唤邮苡梦恢眠M(jìn)行索引,不可以通過(guò)元素來(lái)查找位置。
2. 字典:
dict = {key1:val1,key2:val2}
編程世界中的很多概念都源自于生活,字典也是。這種數(shù)據(jù)結(jié)構(gòu)如我們使用的字典一樣,通過(guò)“名稱(chēng)—內(nèi)容”來(lái)構(gòu)建,在Python中每個(gè)元素是帶有冒號(hào)的key與val的對(duì)應(yīng)關(guān)系組,習(xí)慣稱(chēng)之為鍵值對(duì)。
字典的特征如下:
字典中的元素必須是鍵值對(duì)的形式;
鍵(key)不可以重復(fù),而值(val)可以重復(fù);
鍵不可變,無(wú)法修改;值可修改,可以是任何對(duì)象。
即使字典中有重復(fù)的鍵,打印出來(lái)時(shí)也只會(huì)出現(xiàn)一次。比如:
1 dict = {'A':'art','B':'big','C':'cute','C':'cute'} 2 print(dict)
接下來(lái)看下字典的增刪改查。
增:
字典中沒(méi)有像列表那樣有一個(gè)現(xiàn)成的insert方法可以使用,但可以通過(guò)下面這種方式插入元素,元素默認(rèn)會(huì)插入在最后一個(gè)位置。
1 dict = {'A':'art','B':'big','C':'cute'} 2 dict['D'] = 'dictionary' 3 print(dict)
上面講到在列表中增加多個(gè)元素時(shí)可以使用extend方法來(lái)實(shí)現(xiàn),在字典中也有對(duì)應(yīng)的update方法來(lái)實(shí)現(xiàn)添加多個(gè)元素。
1 dict = {'A':'art','B':'big','C':'cute'} 2 dict.update({'D':'dictionary','E':'exam'}) 3 print(dict)
刪:
在字典中刪除某元素,也可以使用del關(guān)鍵字。
1 dict = {'A':'art','B':'big','C':'cute'} 2 del dict['B'] 3 print(dict)
需要注意的是,雖然字典是用大括號(hào)的,但在刪除時(shí)依然使用的是中括號(hào)。
改:
如果要修改字典里的元素,直接重新給鍵賦值即可。
1 dict = {'A':'art','B':'big','C':'cute'} 2 dict['B'] = 'beyond' 3 print(dict)
查:
在字典中進(jìn)行索引時(shí),和刪除一樣,用的是中括號(hào),中括號(hào)中存放字典的鍵,也就是說(shuō)對(duì)字典元素進(jìn)行索引時(shí)是通過(guò)鍵來(lái)索引的。
1 dict = {'A':'art','B':'big','C':'cute'} 2 dict['B'] 3 print(dict['B'])
之前在文章《Python入門(mén)_淺談字符串的分片與索引、字符串的方法》中有提到過(guò)字符串的分片,在字典里,字符串是不可以進(jìn)行分片的。
3. 元組
tuple = (val1,val2,val3,val4)
Python中的元組與列表類(lèi)似,不同之處在于元組不可以修改,類(lèi)似于穩(wěn)固版的列表,因此在列表中可以使用的增刪改的方法在元組中是不可以使用的,但是可以對(duì)元組中的元素進(jìn)行索引,和列表類(lèi)似。
1 tup = (1,2,'s',7) 2 print(tup[0]) 3 print(tup[-1]) 4 print(tup[1:]) 5 print(tup[:-2])
4. 集合
set = {val1,val2,val3,val4}
集合的概念有點(diǎn)接近于數(shù)學(xué)上的集合。每個(gè)集合中的元素是無(wú)序的、不重復(fù)的任何對(duì)象,我們可以通過(guò)集合去判斷數(shù)據(jù)的從屬關(guān)系,有時(shí)還可以通過(guò)集合把數(shù)據(jù)結(jié)構(gòu)中重復(fù)的元素減掉。
集合不可以被切片也不能被索引,除了做集合運(yùn)算之外,集合元素可以被添加和刪除。
set = {7,1,8,3,4,5,3} set.add(0) # 新增元素0 set.discard(7) # 刪除掉元素7 print(set) # 打印出的集合會(huì)從小到達(dá)排列,并去重
等后面如果用到集合時(shí),再詳細(xì)展開(kāi)集合的運(yùn)算。
后續(xù)會(huì)介紹下數(shù)據(jù)結(jié)構(gòu)的一些小技巧。
操作環(huán)境:Python版本,3.6;PyCharm版本,2016.2;電腦:Mac
以上這篇Python入門(mén)_淺談數(shù)據(jù)結(jié)構(gòu)的4種基本類(lèi)型就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Python數(shù)據(jù)結(jié)構(gòu)之樹(shù)的全面解讀
- Python 數(shù)據(jù)結(jié)構(gòu)之十大經(jīng)典排序算法一文通關(guān)
- Python數(shù)據(jù)結(jié)構(gòu)之列表與元組詳解
- Python數(shù)據(jù)結(jié)構(gòu)詳細(xì)
- Python 數(shù)據(jù)結(jié)構(gòu)之樹(shù)的概念詳解
- python三種數(shù)據(jù)結(jié)構(gòu)及13種創(chuàng)建方法總結(jié)
- python數(shù)據(jù)結(jié)構(gòu)的排序算法
- Python從入門(mén)到實(shí)戰(zhàn)之?dāng)?shù)據(jù)結(jié)構(gòu)篇
相關(guān)文章
Django 項(xiàng)目重命名的實(shí)現(xiàn)步驟解析
這篇文章主要介紹了Django 項(xiàng)目重命名的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08Python簡(jiǎn)單爬蟲(chóng)導(dǎo)出CSV文件的實(shí)例講解
今天小編就為大家分享一篇Python簡(jiǎn)單爬蟲(chóng)導(dǎo)出CSV文件的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07解決Python中的modf()函數(shù)取小數(shù)部分不準(zhǔn)確問(wèn)題
這篇文章主要介紹了解決Python中的modf()函數(shù)取小數(shù)部分不準(zhǔn)確問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05Python中標(biāo)準(zhǔn)模塊importlib詳解
這篇文章主要給大家詳細(xì)介紹了Python中標(biāo)準(zhǔn)模塊importlib的使用方法和示例,非常簡(jiǎn)單,有需要的小伙伴可以參考下2017-04-04Pytorch中Tensor與各種圖像格式的相互轉(zhuǎn)化詳解
這篇文章主要介紹了Pytorch中Tensor與各種圖像格式的相互轉(zhuǎn)化詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12Python讀取含url圖片鏈接的txt文檔方法小結(jié)
這篇文章主要為大家詳細(xì)介紹了三種Python讀取含url圖片鏈接的txt文檔方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-04-04Python selenium的安裝和下載谷歌瀏覽器鏡像驅(qū)動(dòng)
Selenium是一個(gè)用于web自動(dòng)化測(cè)試的框架,在使用Ajax請(qǐng)求數(shù)據(jù)的頁(yè)面中,會(huì)出現(xiàn) sign ,token等密鑰,借助使用Selenium框架來(lái)實(shí)現(xiàn)數(shù)據(jù)爬取很不錯(cuò),本文給大家介紹Python selenium的安裝和下載谷歌瀏覽器鏡像驅(qū)動(dòng),需要的朋友可以參考下2022-11-11python取均勻不重復(fù)的隨機(jī)數(shù)方式
今天小編就為大家分享一篇python取均勻不重復(fù)的隨機(jī)數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11