Python提供多種數據類型來存放數據項集合,主要包括序列(列表list和元組tuple),映射(如字典dict),集合(set),下面對這幾種一一介紹:
一 序列
1.列表list
列表是一種有序的集合,相對于元組和字符串的不同是它其中的元素可變,可以隨時添加和刪除其中的元素。
(1)創建list
在命令行中測試,如下:
>>> L1 = [1,2,3] >>> L1 [1, 2, 3] >>> L2 = ['abc'] >>> L2 ['abc'] >>> L3 = ["a","b","c"] >>> L3 ['a', 'b', 'c']
注意,字符串的一定要加引號。
通過list對字符串創建列表非常有效,比如:
>>> L = list("Python") >>> L ['P', 'y', 't', 'h', 'o', 'n']
(2)訪問list
根據索引來訪問,注意不能越界,這一點跟數組特別像:
>>> L[0] 'P' >>> L[-1] 'n'
(3)添加新元素
用append()方法,把新元素追加到list的末尾;insert()可以將一個新元素添加到特定的位置。
(4) 刪除元素
刪除元素可以采用pop()方法,執行L.pop()刪除list的最后一個元素,如果是特定位置的話可以采用pop(2),2表示的是位置。
(5)替換
替換很簡單,直接索引就可以。
(6)打印
>>> L = ['a','b','c'] >>> for i in L: print(i) a b c
2. tuple
(1)創建
與list所不同的是,tuple一般采用()括起來,命令行中測試,如下:
T= 1,2,3 >>> T (1, 2, 3) >>> T = (1,2,3) >>> T (1, 2, 3) >>> T = "abc" >>> T 'abc'
創建空元組:T = ()
定義一個元素的元組:
>>> T = (1)
>>> T
1
這樣運行了結果是對的,看起來也沒錯,但是這種定義其實并不正確,這種定義的不是tupel,而是1這個數,這是因為括號()既可以表示tuple,又可以表示數學公式中的小括號,這就產生了歧義,因此,Python規定,這種情況下,按小括號進行計算,計算結果自然是1。所以定義含一個元素的元組時必須加一個逗號,如下:
>>> T = (1,) >>> T (1,)
(2)訪問
直接索引就好,如下:
>>> T =(1,2,3) >>> T[1] 2
(3)更改
上述定義的tuple是不變的,但是我們可以在tuple中定義list對其進行修改:
>>> T = (1,2,['a','b']) >>> T[2][0] 'a' >>> T[2][0] = 'c' >>> T (1, 2, ['c', 'b'])
在tuple中,雖然元素不可以修改,但是我們可以對其進行連接組合:
>>> T1 = [1,2,3] >>> T2 = [4,5,6] >>> T3 = T1 + T2 >>> T3 [1, 2, 3, 4, 5, 6]
3.字符串
(1)創建
>>> str = "Hello Python" >>> str 'Hello Python'
(2)訪問
>>> str[0] 'H'
(3)相加
>>>str = "hello " >>>str = "Python" >>> str3 = str1 + str2 >>> str3 'Hello Python'
4.通用的序列操作方法
(1)索引
在訪問序列元素中用到,如下:
>>> L = ['a','b','c'] >>> L[1] 'b' >>> T = (1,2,3) >>> T[0] 1 >>> str = "Python" >>> str[4] 'o'
(2)分片
分片用來訪問一定范圍內的元素,分片通常通過冒號相隔的兩個索引來實現,常見的有如下幾種:
>>> a = list(range(10)) >>> a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> b = a[1:5] >>> b [1, 2, 3, 4] >>> c = a[-3:-1] >>> c [7, 8] >>> d = a[1:10:2] >>> d [1, 3, 5, 7, 9]
二 映射(字典)
映射中的每個元素都有一個專業的名字,叫做鍵。字典是Python中唯一內建的映射類型,下來我們對其進行詳細介紹:
(1)鍵類型
字典(dict)是一個存放無序的鍵值映射(key/value)類型數據的容器字典的鍵可以是數
字、字符串或者是元組,鍵必須唯一。在Python中,數字、字符串和元組都被設計成不可變類型,而常見的列表以及集合(set)都是可變的,所以列表和集合不能作為字典的鍵。鍵可以為任何不可變類型,這正是Python中的字典最強大的地方。
(2)創建
>>> d = {} >>> d[1] = 1 >>> d {1: 1} >>> d['cat'] = 'Lucy' >>> d {1: 1, 'cat': 'Lucy'}
(3)查找
dict是通過key來查找value,表示的是意義對應的關系,可以通過d[key]的方式來訪問dict:
>>> d['cat'] 'Lucy'
(4)遍歷
>>> d = {} >>> d['cat'] = 'Lucy' >>> d['dog'] = 'Ben' >>> for key in d: print(key + ":",d[key])
結果
cat: Lucy dog: Ben
(5)優缺點
dict的第一個特點是查找速度快,而且查找的速度與元素的個數無關,而list的查找速度是隨著元素的增加而逐漸下降的;第二個特點是存儲的key-value序對是沒有順序的;第三個特點是作為key得到元素是不可變的,所以list不能作為key。
dict的缺點是占用內存大,還會浪費很多內容。
三 集合(set)
dict是建立了一系列的映射關系,而set是建立一系列無序的,不重復的元素。
(1)創建
創建set的方式是調用set()并傳入一個list,list的元素將作為set的元素。
>>> S = set([1,2,3]) >>> S {1, 2, 3}
重復元素在Set中自動過濾,如:
>>> S = set([1,1,2,3,4,5,4]) >>> S {1, 2, 3, 4, 5}
(2)添加
add()添加,有重復元素可以添加,但不會有效果:
>>> S.add(4) >>> S {1, 2, 3, 4, 5} >>> S.add(9) >>> S {1, 2, 3, 4, 5, 9}
(3)刪除
>>> S.remove(9)
>>> S
{1, 2, 3, 4, 5}
(4)交集,并集
set可以看成數學意義上的無序和無重復元素的集合,因此,兩個set可以做數學意義上的交集、并集:
>>> S1 = set([1,2]) >>> S2 = set([2,3]) >>> S1&S2 {2} >>> S1|S2 {1, 2, 3}
set和dict的唯一區別僅在于沒有存儲對應的value,但是,set的原理和dict一樣,所以,同樣不可以放入可變對象,因為無法判斷兩個可變對象是否相等,也就無法保證set內部“不會有重復元素”
四 list,tuple,dict和set的主要區別
1 .list
list是一個使用方括號括起來的有序元素集合;
List 可以作為以 0 下標開始的數組,任何一個非空 list 的第一個元素總是 L[0],負數索引從 list 的尾部開始向前計數來存取元素。任何一個非空的 list 最后一個元素總是 L[-1];
有分片功能,兩個list可以相加;
append 向 list 的末尾追加單個元素;
insert 將單個元素插入到 list 中;
extend 用來連接 list,使用一個 list 參數進行調用;
append 接受一個參數, 這個參數可以是任何數據類型, 并且簡單地追加到 list 的尾部;
index 在 list 中查找一個值的首次出現并返回索引值;
要測試一個值是否在 list 內, 使用 in, 如果值存在, 它返回 True, 否則返為 False ;
remove 從 list 中刪除一個值的首次出現;
pop 可以刪除 list 的最后一個元素, 然后返回刪除元素的值,用索引刪除制定位置的值;?
2.tuple
tuple是不可變的list,創建了一個tuple就不能以任何方式改變它;
定義tuple是將整個元素集是用小括號括起來,是有序集合;
tuple的索引與list一樣從0開始,所以一個非空的tuple的第一個元素總是t[0];
負數索引與 list 一樣從 tuple 的尾部開始計數;
與 list 一樣分片 (slice) 也可以使用。分割一個 tuple 時, 會得到一個新的 tuple;
沒有 append、extend、remove或pop方法以及index方法;
可以使用in來查看一個元素是否存在于tuple 中。
3.dict
dict定義了鍵和值之間的一一對應關系,每個元素都是一個key-value對;
整個元素集合用大括號括起來,有序集合;
可以通過 key 得到value, 但不能通過vaule獲取 key;
在一個 dict中不能有重復的 key, 并且 key 是大小寫敏感的;
鍵可以是數字、字符串或者是元組等不可變類型;
用del使用key可以刪除dict中的獨立元素;
用clear可以清除dict中的所有元素。
4.set
set是建立一系列無序的,不重復的元素;
創建set的方式是調用set()并傳入一個list,list的元素將作為set的元素;
set和dict的唯一區別僅在于沒有存儲對應的value。
以上是就是對Python數據類型的全部總結,希望對大家的學習有所幫助。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
