學習Python中的List和Tuple

來源:互聯網
上載者:User

標籤:

                                                           學習Python中的List和Tuple

 List定義

序列是Python中最基本的資料結構。序列中的每個元素都分配一個數字 - 它的位置,或索引,第一個索引是0,第二個索引是1,依此類推。

列表是最常用的Python資料類型,它可以作為一個方括弧內的逗號分隔值出現。列表的資料項目不需要具有相同的類型。建立一個列表,只要把逗號分隔的不同的資料項目使用方括弧括起來即可.  
1 list=[‘du‘,‘dpsl‘,123,5926]2 print list[2]3 list[2]=3214 print list5 del list[0] 6 print list

其結果將是: 

123[‘du‘, ‘dpsl‘, 321, 5926][‘dpsl‘, 321, 5926]

 

   List切片如果要取最後一位,怎麼辦?用-1表示最後一個元素。類似的,倒數第二用 -2 表示,倒數第三用 -3 表示,倒數第四用 -4。
1 list=[‘123‘,‘dudu‘,‘iiiu‘]2 print list3 print list[-1]4 print list[-2]5 list.insert(0,‘du‘)  #增加元素 ,第一個參數表示增加到第一個位置上。pop()方法總是刪掉list的最後一個元素,並且它還返回這個元素。6 print list

結果是:

> [‘123‘, ‘dudu‘, ‘iiiu‘]iiiududu[‘du‘, ‘123‘, ‘dudu‘, ‘iiiu‘]
      元組  tuple

Python的元組與列表類似,不同之處在於元組的元素不能修改(後面會有個例子證明其也是“可變”的)。元組使用小括弧,列表使用方括弧。

元組建立很簡單,只需要在括弧中添加元素,並使用逗號隔開即可。

     元組可以使用下標索引來訪問元組中的值 可以使用del語句來刪除整個元組,但是不允許刪除元組中的元素。tuple沒有 append()方法,也沒有insert()和pop()方法。 元組中的元素值是不允許修改的,但我們可以對元組進行串連組合。比如:
 1   tup1=(‘123‘,31) 2 print tup1 3 tup2=(‘dudu‘,‘du‘,123,321,‘zzz‘) 4 print tup2 5 tup3=tup1+tup2 6 print tup3 7  8 print "t2:",tup2[2:4] 9 10 print "======="11 12 del tup113 print tup1 #此時已經沒有tup1了。

其結果是:

> (‘123‘, 31)(‘dudu‘, ‘du‘, 123, 321, ‘zzz‘)(‘123‘, 31, ‘dudu‘, ‘du‘, 123, 321, ‘zzz‘)t2: (123, 321)=======> Traceback (most recent call last):  File "/demo/test.py", line 19, in     print tup1NameError: name ‘tup1‘ is not defined

 

一個特殊的地方:

因為()既可以表示tuple,又可以作為括弧表示運算時的優先順序,結果 (1) 被Python解譯器計算出結果 1,導致我們得到的不是tuple,而是整數 1。

正是因為用()定義單元素的tuple有歧義,所以 Python 規定,單元素 tuple 要多加一個逗號“,”。

tup1=(121,)print tup1
> (121,)

 

  上面寫到元組是不可變的。那麼,元組是真的不可變嗎?看例子:
1 t = (‘du‘, ‘dudu‘, [‘A‘, ‘B‘])2 print t3 L=t[2]     #得到元組中的索引為2的元素,即其中的List。4 L[0]=‘XX‘  #修改List中的第一個元素。5 L[1]=‘YYY‘  #修改List中的第一個元素。6 print t

看結果:

> (‘du‘, ‘dudu‘, [‘A‘, ‘B‘])(‘du‘, ‘dudu‘, [‘XX‘, ‘YYY‘])
 明明已經變了嘛,那麼解釋:
表面上看,tuple的元素確實變了,但其實變的不是 tuple 的元素,而是list的元素。tuple一開始指向的list並沒有改成別的list,所以,tuple所謂的“不變”是說,tuple的每個元素,指向永遠不變。即指向‘a‘,就不能改成指向‘b‘,指向一個list,就不能改成指向其他對象,但指向的這個list本身是可變的!

 

 

 感謝:廖學峰官網         慕課網         匯智網

 

學習Python中的List和Tuple

相關文章

聯繫我們

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