Python語言簡單明了,用更少的代碼就能實現同樣的功能。其中,Python的四種內置數據類型不可或缺,分別是list、tuple、dict和set。以下是對它們的簡要總結。
目錄
字面意思是壹套。在Python中,列表中的元素由括號【】表示,列表可以定義如下:
l =【12,‘中國‘,19.998】
可以看出,元素的類型不需要相同。當然,您也可以定義壹個空列表:
L =【】
Python中的列表是有序的,因此如果要訪問列表,顯然應該通過序列號來訪問它,就像數組的下標壹樣,從0開始:
& gt& gt& gt打印L【0】
12
千萬不要越界,否則妳會報錯。
& gt& gt& gt打印L【3】
回溯(最近壹次呼叫):
文件“<標準輸入》,第1行,in & lt模塊& gt
索引錯誤:列表索引超出範圍
該列表也可以以相反的順序訪問,序列號由下標表示,例如“從底部開始的X”。例如,下標-1表示倒數第壹個元素:
& gt& gt& gtl =【12,‘中國‘,19.998】
& gt& gt& gt打印L【-1】
19.998
-4明顯出格。
& gt& gt& gt打印L【-4】
回溯(最近壹次呼叫):
文件“<pyshell#2》,第1行,in & lt模塊& gt
打印L【-4】
索引錯誤:列表索引超出範圍
& gt& gt& gt
內置append()方法將列表添加到尾部,insert()方法將列表添加到指定位置(下標從0開始):
& gt& gt& gtl =【12,‘中國‘,19.998】
& gt& gt& gtl .追加(“傑克”)
& gt& gt& gt打印L
【12,‘中國’,19.998,‘傑克’】
& gt& gt& gtl . insert(1,3.14)
& gt& gt& gt打印L
【12,3.14,‘中國’,19.998,‘傑克’】
& gt& gt& gt
通過pop()刪除最後壹個尾部元素,或者可以指定壹個參數來刪除指定位置:
& gt& gt& gt流行樂()
傑克
& gt& gt& gt打印L
【12,3.14,‘中國‘,19.998】
& gt& gt& gt流行音樂(0)
12
& gt& gt& gt打印L
【3.14,‘中國‘,19.998】
您也可以復制和替換下標。
& gt& gt& gtl【1】=“美國”
& gt& gt& gt打印L
【3.14,‘美國‘,19.998】
元組
元組可以被視為“不可更改”的列表,訪問也由下標和括號()表示:
& gt& gt& gtt =(3.14,‘中國’,‘傑森’)
& gt& gt& gt打印t
(3.14,“中國”,“傑森”)
但是您不能重新分配替代者:
& gt& gt& gtt【1】=‘美國‘
回溯(最近壹次呼叫):
文件“<pyshell#21》,第1行,in & lt模塊& gt
t【1】=‘美國‘
類型錯誤:“元組”對象不支持項分配
也沒有pop、insert和append方法。
您可以創建壹個空元素元組:
t =()
或者單元素元組(例如添加逗號以防止和聲明塑性歧義):
t =(3.14
那麽這種類型的元組有什麽用呢?妳知道,如果妳想讓壹個函數返回多個返回值,妳只需要返回壹個元組,因為元組包含多個值並且是不可變的(就像java中的final壹樣)。當然,元組也是可變的,例如:
& gt& gt& gtt =(3.14,‘中國‘,‘傑森‘,【‘A‘,B‘】)
& gt& gt& gt打印t
(3.14,‘中國‘,‘傑森‘,【‘A‘,B‘】)
& gt& gt& gtl = t【3】
& gt& gt& gtl【0】= 122
& gt& gt& gtl【1】= 233
& gt& gt& gt打印t
(3.14,‘中國’,‘傑森’,【122,233】)
這是因為Tuple的所謂不可變性意味著指向位置是不可變的,因為本例中的第四個元素不是基本類型,而是列表類型,因此T指向的列表的位置是不變的,但列表本身的內容是可以改變的,因為列表本身在內存中的分配是不連續的。
詞典
Dict是Python中非常重要的數據類型。就像它的字面意思壹樣,它是壹本活字典,實際上是壹個鍵-值鍵-值對。類似於HashMap,它可以由花括號{}定義,類似於定義C語言的結構:
& gt& gt& gtd = {
亞當:95年,
麗莎:85歲,
巴特:59歲,
保羅:75歲
}
& gt& gt& gt打印d
{“麗莎”:85歲,“保羅”:75歲,“亞當”:95歲,“巴特”:59歲}
可以看到打印出來的結果都是Key:Value的格式,它的長度可以通過len函數(List,tuple也可以)計算出來:
& gt& gt& gt鏡頭(d)
四
您可以通過鍵值對直接在dict中添加元素:
& gt& gt& gt打印d
{“麗莎”:85歲,“保羅”:75歲,“亞當”:95歲,“巴特”:59歲}
& gt& gt& gtd【瓊斯】= 99
& gt& gt& gt打印d
{“麗莎”:85歲,“保羅”:75歲,“亞當”:95歲,“瓊斯”:99歲,“巴特”:59歲}
List和tuple使用下標來訪問內容,而dict使用鍵:(String、integer、floating-point和Tuple都可以用作Dict鍵)。
& gt& gt& gt印刷體d【‘亞當‘】
95
如果密鑰不存在,將會報告壹個錯誤:
& gt& gt& gt印刷體d【‘Jack‘】
回溯(最近壹次呼叫):
文件“<pyshell#40》,第1行,in & lt模塊& gt
印刷體d【‘Jack‘】
關鍵錯誤:“傑克”
因此,最好在訪問之前檢查密鑰是否存在:
& gt& gt& gt如果d中的“Adam ”:打印“exist key”
現有密鑰
或者直接使用保險獲取方法:
& gt& gt& gt打印d . get(‘亞當‘)
95
& gt& gt& gt打印d . get(‘Jason‘)
沒有人
至於遍歷dict,它實際上是遍歷其所有鍵的集合,然後使用這個鍵獲得相應的值:
& gt& gt& gt對於d中的鍵:打印鍵:‘:‘,d . get(key)
麗莎:85歲
保羅:75歲
亞當:95歲
巴特:59歲
Dict有壹些特點:
搜索速度很快。無論是10還是65438+100,000,速度都是壹樣的,但要占用大量內存。另壹方面,List占用的內存較少,但搜索速度較慢。這就像數組和鏈表的區別。數組不知道要打開多少空間,所以它們通常在開始時會打開很大的空間,但直接通過下標搜索會很快。但是鏈表占用的空間很小,但搜索時必須按順序遍歷,導致速度很慢。
沒有順序。Dict是無序的,List是有序的集合,所以不能用Dict存儲有序的集合。
鍵是不可變的,值是可變的。壹旦壹個鍵-值對被添加到dict中,其對應的鍵就不能更改,但值可以更改。因此List不能用作Dict的鍵,但可以用作值:
& gt& gt& gt打印d
{“麗莎”:85歲,“保羅”:75歲,“亞當”:95歲,“瓊斯”:99歲,“巴特”:59歲}
& gt& gt& gtd【‘NewList‘】=【12,23,Jack】
& gt& gt& gt打印d
{‘巴特‘:59,‘新列表‘:【12,23,‘傑克‘】,‘亞當‘:95,‘瓊斯‘:99,‘麗莎‘:85,‘保羅‘:75 }
密鑰不能重復。(在下面的示例中,添加了壹個“Jone”:0,但實際上鍵“Jone”已經存在,因此原始值只是被更改了。)
& gt& gt& gt打印d
{‘巴特‘:59,‘新列表‘:【12,23,‘傑克‘】,‘亞當‘:95,‘瓊斯‘:99,‘麗莎‘:85,‘保羅‘:75 }
& gt& gt& gtd【‘瓊斯‘】= 0
& gt& gt& gt打印d
{‘Bart‘:59,‘NewList‘:【12,23,Jack】,‘Adam‘:95,‘Jone‘:0,‘Lisa‘:85,‘Paul‘:75 }
Dict merge,如何將兩個Dict合並為壹個,可以使用dict函數:
& gt& gt& gtd 1 = {‘邁克‘:12,‘傑克‘:19 }
& gt& gt& gtD2 = {‘jone‘:22,‘ivy‘:17 }
& gt& gt& gtd merge = dict(d 1 . items()+D2 . items())
& gt& gt& gt打印數據合並
{‘邁克‘:12,‘傑克‘:19,‘瓊斯‘:22,‘艾薇‘:17 }
或者
& gt& gt& gtd merge 2 = dict(d 1,**d2)
& gt& gt& gt打印數據合並2
{‘邁克‘:12,‘傑克‘:19,‘瓊斯‘:22,‘艾薇‘:17 }
方法2比方法1快得多,方法2相當於:
& gt& gt& gtd merge 3 = dict(d 1)
& gt& gt& gtd merge 3 . update(D2)
& gt& gt& gt打印數據合並
{‘邁克‘:12,‘傑克‘:19,‘瓊斯‘:22,‘艾薇‘:17 }
設置
設置就像在Dict中拔出鑰匙,類似於列表,但內容不能重復。它是通過調用set()方法創建的:
& gt& gt& gts =集合(【‘A‘,‘B‘,‘C‘】)
就像dict是無序的壹樣,set也是無序的,不能包含重復的元素。
訪問集合的意義僅在於查看元素是否在該集合中:
& gt& gt& gt在s中打印“A”
真實的
& gt& gt& gt在s中打印“D”
錯誤的
大小寫敏感。
它還被遍歷用於:
s =集合(【(‘亞當‘,95),(‘麗莎‘,85),(‘巴特‘,59))
#元組
對於s中的x:
打印x【0】,‘:‘,x【1】
& gt& gt& gt
麗莎:85歲
亞當:95歲
巴特:59歲
添加和刪除元素(不重復)。添加元素時,請使用set的add()方法:
& gt& gt& gts =集合(【1,2,3】)
& gt& gt& gts . add(4)
& gt& gt& gt打印s
集合(【1,2,3,4】)
如果添加的元素已經存在於集合中,add()不會給出錯誤,但它不會被添加:
& gt& gt& gts =集合(【1,2,3】)
& gt& gt& gts . add(3)
& gt& gt& gt打印s
集合(【1,2,3】)
刪除集合中的元素時,請使用集合的remove()方法:
& gt& gt& gts =集合(【1,2,3,4】)
& gt& gt& gt移除(4)
& gt& gt& gt打印s
集合(【1,2,3】)
如果刪除的元素不在集合中,remove()將報告錯誤:
& gt& gt& gts =集合(【1,2,3】)
& gt& gt& gt移除(4)
回溯(最近壹次呼叫):
文件“<標準輸入》,第1行,in & lt模塊& gt
關鍵錯誤:4
所以如果我們要判斷壹個元素是否滿足壹些不同的條件,set是最好的選擇。下面的例子:
months =集合(【‘壹月‘,‘二月‘,‘三月‘,‘四月‘,‘五月‘,‘六月‘,‘七月‘,‘八月‘,‘九月‘,‘十月‘,‘十壹月‘,‘十二月‘,】)
x 1 =‘Feb‘
x2 =‘Sun‘
如果x1以月為單位:
打印“x1:正常”
否則:
打印“x1:錯誤”
如果x2以月為單位:
打印“x2:正常”
否則:
打印“x2:錯誤”
& gt& gt& gt
x1:好的
x2:錯誤