Python中常見的資料類型小結

來源:互聯網
上載者:User
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) abc

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: Lucydog: 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資料類型的全部總結,希望對大家的學習有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.