python的list,dict,tuple比較和應用

來源:互聯網
上載者:User

1.list(數組)

數組的方法運用,應該有寫過程式的都知道啦

包括二維三維,下面我只說幾個方法

x代表數組中的元素,i代表位置

a) append(x) 把元素x添加到數組的尾部

b) insert(i,x) 把元素x 插入到位置i

c) remove(x) 刪除第一個元素x

d) pop(i) 刪除第i個元素,並返回這個元素。若調用pop()則刪除最後一個元素

e) index(x) 返回數組中第一個值為x的位置。如果沒有匹配的元素會拋出一個錯誤

f) count(x) 返回x在數組中出現的次數

g) sort() 對數組中的元素進行排序

h) reverse() 對數組中的元素用倒序排序

2.dict(字典)

這一個有必要說多一些東西,因為比較好用,而且在別的語言裡也較少

字典(Dictionary)是一種映射結構的資料類型,由無序的“鍵-值對”組成。字典的鍵必須是不可改變的類型,如:字串,數字,tuple;值可以為任何python資料類型。

1)、建立字典

>>> dict1={}      #建立一個空字典

>>> type(dict1)

<type ‘dict’>

2)、增加字典元素:兩種方法

>>> dict1['a']=1    #第一種

>>> dict1

{’a': 1}

#第二種:setdefault方法

>>> dict1.setdefault(’b',2)

2

>>> dict1

{’a': 1, ‘b’: 2}

3)、刪除字典

#刪除指定鍵-值對

>>> dict1

{’a': 1, ‘b’: 2}

>>> del dict1['a']      #也可以用pop方法,dict1.pop(’a')

>>> dict1

{’b': 2}

#清空字典

>>> dict1.clear()

>>> dict1         #字典變為空白了

{}

#刪除字典對象

>>> del dict1

4)、字典的方法

1)get(key,default=None)

返回索引值key對應的值;如果key沒有在字典裡,則返回default參數的值,預設為None

>>> dict1         #空的字典

{}

>>> dict1.get(’a')   #鍵‘a’在dict1中不存在,返回none

>>> dict1.get(’d1′,’no1′)   #default參數給出值’no1′,所以返回’no1′

‘no1′

>>> dict1['a']=’no1′      #插入一個新元素

>>> dict1

{’a': ‘1111′}

>>> dict1.get(’a')      #現在鍵’a'存在,返回其值

‘1111′

(2)clear

清空字典

(3)has_key(key)
如果key出現在dict裡則返回True;否則返回False
>>> dict1

{’a': ‘1111′}
>>> dict1.has_key(’b')

False

>>> dict1.has_key(’a')

True

(4)items
返回dict的(鍵,值)tuple對的一個列表
>>> dict1

{’a': ‘no1′, ‘b’: ‘2222′}

>>> dict1.items()

[('a', 'no1'), ('b', '2222')]

(5)keys   返回dict的鍵列表

(6)values 返回dict的值列表

>>> dict1

{’a': ‘no1′, ‘b’: ‘2222′}

>>> dict1.keys()

['a', 'b']

>>> dict1.values()

['no1', '2222']

(7)setdefault(key,default=None)
如果dict中有key,則返回key值,如果沒有找到key,則在dict中加上該key,值由default參數給出,預設None

(8)update(dict2)

把dict2的元素加入到dict中去,鍵字重複時會覆蓋dict中的索引值

>>> dict2

{’c': ‘3333′, ‘b’: ‘no2′}

>>> dict1                  #dict2和dict1的鍵‘b’重複

{’a': ‘no1′, ‘b’: ‘2222′}

>>> dict1.update(dict2)   #調用update後,dict1的鍵’b'值被覆蓋了

>>> dict1

{’a': ‘no1′, ‘c’: ‘3333′, ‘b’: ‘no2′}

(9)popitem

刪除任意鍵-值對,並返回該鍵-值對,如字典為空白,則產生異常

>>> dict1

{’b': ‘no2′}

>>> dict1.popitem()

(’b', ‘no2′)

>>> dict1

{}

>>> dict1.popitem()
Traceback (most recent call last):
File “<interactive input>”, line 1, in <module>
KeyError: ‘popitem(): dictionary is empty’

(10)pop(key,[d])

刪除指定鍵字的鍵-值對,並返回該鍵對應的值 #第二個參數不知道怎麼用

>>> dict1

{’a': ‘no1′, ‘c’: ‘3333′, ‘b’: ‘no2′}

>>> dict1.pop(’a')

‘no1′

>>> dict1

{’c': ‘3333′, ‘b’: ‘no2′}

(11)copy

返回字典的一個淺拷貝

#以下方法目前還不知道怎麼用

(12)fromkeys

(13)iteritems

(14)iterkeys

(15)itervalues

3.tuple(元組)

tuple 是python中一個相對簡單的類型,它的特點是:有順序的、不可變的。因此,很顯然地tuple有像list 和string一樣的 indexing和slicing(分區)的功能,可以通過標號對成員進行訪問。同時由於tuple是不可變的,因此試圖改變tuple成員的是非法的。 不過由於tuple中的成員可以是list,而list是可變的,因此改變tuple成員的成員是可行的。這怎麼理解呢?tuple中儲存的中是各個成員 的指標,所說的tuple不可變,也就是說指向各個成員的地址是不可變的。更改作為tuple成員的list裡的成員,並不需要變更在tuple中指向這
個list的指標,因此tuple並沒有改變。

內建函數tuple([seq])用於把seq轉換成tuple。此外,與list和string不同,tuple沒有專屬的函數。

tuple的表示形式如下:

  • (成員1, 成員2…)

考慮只有一個成員的例子,(成員1),由於小括弧也用於運算式的分組,這就會產生一個問題,當你寫下了:

  • T=(23)

這一行代碼的時候,python怎麼知道你是要把23這個整數賦予T呢,還是要把只有一個成員的tuple給T呢。所以,python規定,這種形式表示把T賦為整數23。而只有一個成員的tuple應該用如下的方式表示:

  • T=(23,)

即在唯一的成員後面加上一個逗號。

4.總結一下:

list是順序的,可變的。

dictrionary是無順序的,可變的

tuple是順序的,不可變的。

三者最好是結合起來用,個有個的優點,例如:

a=((1,”abc”),(2,”efg”),(3,”ghi”))

如果我選擇1的話,如何返回abc

a=((1,"abc"),(2,"efg"),(3,"ghi"))
>>>dict(a)[1]
'abc'
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.