Python學習-list 和 tuple

Python內置的一種數據類型是列表:list。list是一種有序的集合,可以隨時添加和刪除其中的元素。 

按照代碼學習:

# -*- coding: utf-8 -*- 
if __name__ == '__main__':
    classmate = ['Michael', 'Jim', 'Kobe']
    print 'classmate爲:', classmate

#    用len()函數可以獲得list元素的個數:
    print 'classmate的長度是', len(classmate)
    
#    用索引來訪問list中每一個位置的元素
    print 'classmate的第一個元素是:', classmate[0]
    
#    如果要取最後一個元素,除了計算索引位置外,還可以用-1做索引,直接獲取最後一個元素:
    print 'classmate的最後一個元素是:', classmate[-1]
    
#    list是一個可變的有序表,所以,可以往list中追加元素到末尾:
    classmate.append('Allen')
    print 'classmate添加了一個元素後爲:', classmate
    
#    也可以把元素插入到指定的位置,比如索引號爲1的位置:
    classmate.insert(1, 'Green')
    print 'classmate添加了一個元素後爲:', classmate

#    要刪除指定位置的元素,用pop(i)方法;要刪除list末尾的元素,用pop()方法:
    classmate.pop(4)
    print 'classmate刪除了一個元素後爲:', classmate
    
#    要把某個元素替換成別的元素,可以直接賦值給對應的索引位置:
    classmate[0]='Sara'
    print 'classmate替換了一個元素後爲:', classmate
    
#    list裏面的元素的數據類型也可以不同, 而且可以是list,比如:
    list= ['string', 123, True, ['internalList',123] ]
    print 'list:', list
    

打印輸出結果爲:

classmate爲: ['Michael', 'Jim', 'Kobe']
classmate的長度是 3
classmate的第一個元素是: Michael
classmate的最後一個元素是: Kobe
classmate添加了一個元素後爲: ['Michael', 'Jim', 'Kobe', 'Allen']
classmate添加了一個元素後爲: ['Michael', 'Green', 'Jim', 'Kobe', 'Allen']
classmate刪除了一個元素後爲: ['Michael', 'Green', 'Jim', 'Kobe']
classmate替換了一個元素後爲: ['Sara', 'Green', 'Jim', 'Kobe']
list: ['string', 123, True, ['internalList', 123]]


Tuple:
tuple一旦定義就不能變了,它也沒有append(),insert()這樣的方法。其他獲取元素的方法和list是一樣的,你可以正常地使用classmates[0],classmates[-1],但不能賦值成另外的元素。

不可變的tuple有什麼意義?因爲tuple不可變,所以代碼更安全。如果可能,能用tuple代替list就儘量用tuple。

tuple的陷阱:當你定義一個tuple時,在定義的時候,tuple的元素就必須被確定下來

Demo:

# -*- coding: utf-8 -*- 
if __name__ == '__main__':
#  另一種有序列表叫元組:tuple。tuple和list非常類似,但是tuple一旦初始化就不能修改,比如同樣是列出同學的名字:
    classmate = ('Michael', 'Kobe', 'Allen')
    print classmate[1]
    classmate[1]='test'#報錯, tuple元素不支持賦值: TypeError: 'tuple' object does not support item assignment

#  只有1個元素的tuple定義時必須加一個逗號,來消除歧義:
    tuple=(1,)
    notTuple=(1)
    print type(tuple)
    print type(notTuple)

#  但Tuple裏面的可變元素的值可以改變, 例如包含list的tuple:
    t= ('string', 123, ['item1', 'item2'])
    print '改變之前的tuple: ',t
    t[2][0]='newItem1'
    print '改變之後的tuple: ',t



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章