青青青免费国产在线91_日韩精品国产一区二区三区在线看_91爱欧美国产在线观看_亚洲中文无卡无码_成年视频在线播放_午夜国产熟女视频_亚洲av年青人熟妇乱子_亚洲中文字幕精华在线看_浮力草草影院ccyy国产_精品人妻一区二区三区久久台湾

電話咨詢

聯(lián)系電話

 

17795155477

 

掃碼加微信

  • H:841px
  • W:349px

寧夏小程序開發(fā)5

2021-03-04 13:47:02
 

數(shù)據(jù)結構(Data Structure

 

數(shù)據(jù)結構

resize,m_lfit,w_120

 

     如在現(xiàn)實世界中一樣,直到我們擁有足夠多的東西,才迫切需要一個儲存東西 的容器,這也是我堅持把數(shù)據(jù)結構放在最后面的原因一一直到你掌握足夠多的技能, 可以創(chuàng)造更多的數(shù)據(jù),你才會重視數(shù)據(jù)結構的作用。這些儲存大量數(shù)據(jù)的容器,在 Python 稱之為內置數(shù)據(jù)結構(Built-in Data Structure)。

Python有四種數(shù)據(jù)結構,分別是:列表、字典、元組,集合。每種數(shù)據(jù)結構都 有自己的特點,并且都有著獨到的用處。為了避免過早地陷入細枝末節(jié),我們先從整 體上來認識一下這四種數(shù)據(jù)結構:

image.png

從最容易識別的特征上來說,列表中的元素使用方括號擴起來,字典和集合是花 括號,而元組則是圓括號。其中字典中的元素是均帶有':’的key與value的對應關 系組。

 

列表(List)

     首先我們從列表開始,深入地講解每一種數(shù)據(jù)結構。列表具有的最顯著的特征

1. 列表中的每一個元素都是可變的;

2. 列表中的元素是有序的,也就是說每一個元素都有一個位置;

       3. 列表可以容納Python中的任何對象。

       列表中的元素是可變的,這意味著我們可以在列表中添加、刪除和修改元素。 列表中的每一^元素都對應著一^位置,我們通過輸入位置而查詢該位置所對應的值。

列表的曾刪改查:

      對于數(shù)據(jù)的操作,最常見的是增刪改查這四類。從列表的插入方法開始,輸入:

fruit=['pineapple','pear'] fruit.insert(1,'grape') print(fruit)

在使用insert方法的時候,必須指定在列表中要插入新的元素的位置,插入元素 的實際位置是在指定位置元素之前的位置,如果指定插入的位置在列表中不存在,實 際上也就是超出指定列表長度,那么這個元素一定會被放在列表的最后位置。

 

字典(Dictionary)

resize,m_lfit,w_120

編程世界中其實有很多概念都基于現(xiàn)實生活的原型,字典這種數(shù)據(jù)結構的特征也 正如現(xiàn)實世界中的字典一樣,使用名稱-內容進行數(shù)據(jù)的構建,在Python中分別對 應著鍵(key)-值(value),習慣上稱之為鍵值對。

字典的特征總結如下:

1.字典中數(shù)據(jù)必須是以鍵值對的形式出現(xiàn)的;

2.邏輯上講,鍵是不能重復的,而值可以重復;

3.字典中的鍵(key)是不可變的,也就是無法修改的;而值(value)是可變的,可修改的,可以是任何對象。

字典的曾刪改查:

首先我們按照映射關系創(chuàng)建一個字典,繼續(xù)使用前面的例子:

NASDAQ_code = {'BIDU':'Baidu','SINA':'Sina'}

與列表不同的是,字典并沒有一個可以往里面添加單一元素的“方法”,但是我們 可以通過這種方式進行添加:

NASDAQ_code['YOKU']='Youku'print(NASDAQ_code)

列表中有用來添加多個元素的方法extendO,在字典中也有對應的添加多個元 素的方法updateO:

NASDAQ_code.update({'FB' 'Facebook','TSLA' 'Tesla'})

刪除字典中的元素則使用del方法:

del NASDAQ_code['FB']

需要注意的是,雖說字典是使用的花括號,在索引內容的時候仍舊使用的是和 列表一樣的方括號進行索引,只不過在括號中放入的一定是一一字典中的鍵,也就 是說需要通過鍵來索引值:

NASDAQ_code['TSLA']

同時,字典是不能夠切片的,也就是說下面這樣的寫法應用在字典上是錯誤的:

chart[1:4] # WRONG!

 

元組(Tuple)

元組其實可以理解成一個穩(wěn)固版的列表,因為元組是不可修改的,因此在列表 中的存在的方法均不可以使用在元組上,但是元組是可以被查看索引的,方式就和 歹U表一樣:

letters = (lal,lbl,lcl,ldl,lel,'fl,lgl) letter[0]

集合(Set)

集合則更接近數(shù)學上集合的概念。每一個集合中的元素是無序的、不重復的任 意對象,我們可以通過集合去判斷數(shù)據(jù)的從屬關系,有時還可以通過集合把數(shù)據(jù)結 構中重復的元素減掉。

image.png

集合不能被切片也不能被索引,除了做集合運算之外,集合元素可以被添加還有 刪除:

a_set ={1,2,3,4}a_set.add(5)a_set.discard(5)

 

數(shù)據(jù)結構的一些技巧

 

resize,m_lfit,w_120

 

多重循環(huán)

有很多函數(shù)的用法和數(shù)據(jù)結構的使用是息息相關的。前面我們學習了列表的基 本用法,而在實際操作中往往會遇到更多的問題。比如,在整理表格或者文件的時 候會按照字母或者日期進行排序,在Python中也存在類似的功能:

num_list = [6,2,7,4,1,3,5]

print(sorted(num_list))

推導式

現(xiàn)在我們來看數(shù)據(jù)結構中的推導式(List comprehension),也許你還看到過它 的另一種名稱叫做列表的解析式,在這里你只需要知道這兩個說的其實是一個東西就 可以了。

列表推導式的用法也很好理解,可以簡單地看成兩部分。紅色虛線后面的是我們 熟悉的for循環(huán)的表達式,而虛線前面的可以認為是我們想要放在列表中的元素,在 這個例子中放在列表中的元素即是后面循環(huán)的元素本身。

image.png

 

 

循環(huán)列表時獲取元素的索引

前面提到過,列表是有序的,這時候我們可以使用Python中獨有的函數(shù)enumerate 來進行:

letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g'] for num,letter in enumerate(letters): print(letter,'is',num + 1) 

END

寧夏一沐智云網(wǎng)絡科技有限公司

掃 描 二 維 碼 關 注 我 們

resize,m_lfit,w_120

 

寧夏一沐智云網(wǎng)絡科技有限公司

 

咨詢電話:17795155477
QQ聯(lián)系:460637973

 

公司地址:寧夏銀川麗景北街麗景街商貿城21-17
市場合作:460637973@qq.com

掃一掃

客服微信

掃一掃

寧夏一沐智云

網(wǎng)絡科技

寧夏一沐智云網(wǎng)絡科技有限公司 

 寧ICP備17001803號