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



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