python list(列表)和tuple(元組)

pursuer.chen發表於2016-07-19

介紹

python中存在兩種有序的型別列表,分別是list(列表)和tuple(元組)。list可變、tuple不可變。
 
 

一、list[]列表

為什麼說list是可變的元素列表,因為在定義完list列表之後,還可以對列表中的元素值進行修改、增加或刪除元素;同時list是一個有序的集合,注意列表和陣列一樣索引也是從0開始。

1.定義list列表

name=['a','b',3]

2.獲取list的值

>>> name[0]
'a'
>>> name[1]
'b'
>>> name[2]
3

  >>> name[-1]
  3
  >>> name[-2]
  'b'

3.獲取列表的長度

>>> len(name)
3

4.修改列表元素的值

>>> name[0]=1
>>> name
[1, 'b', 3]

將列表的第一個元素的值修改為1

5.增加元素

>>> name.append('4')
>>> name
[1, 'b', 3, '4']

append方法預設在列表末尾增加元素

在指定位置增加元素

>>> name.insert(1,'')
>>> name
[1, '', 'b', 3, '4']

可以使用insert在指定的位置增加元素

6.刪除元素

刪除末尾元素

>>> name.pop()
'4'
>>> name
[1, '', 'b', 3]

刪除指定元素

>>> name.pop(3)
3
>>> name
[1, '', 'b']

6.列表中包含列表

>>> name.insert(1,['',''])
>>> name
[1, ['', ''], '', 'b']

返回元素'天'

>>> name[1][1]
''

二、tuple()列表

tuple也是一種有序的列表,但是它一旦定義了就無法更改,你也可以用獲取LIST元素的方法獲取tuple元素,但是不能使用append、pop、insert等方法修改元組。

1.定義元組

>>> tu=('a','b','c',4)
>>> tu
('a', 'b', 'c', 4)

2.獲取元素

>>> tu[0]
'a'
>>> tu[-1]
4

3.當對元素的值進行修改時失敗

>>> tu[0]='1'
Traceback (most recent call last):
  File "<pyshell#74>", line 1, in <module>
    tu[0]='1'
TypeError: 'tuple' object does not support item assignment

4.定義一個空的tuple

>>> t=()
>>> t
()

5.定義一個元素的tuple

>>> t=(1,)
>>> t
(1,)

注意:1後面需要加逗號,否則會被解析成數學表示式的括號等於1,例如:

>>> x=(1)
>>> x
1

它不是元組,只能算是一個賦值操作了

6.定義"可變"的tuple

注意這裡的可變的意思需要特別理解,這裡的可變不是tuple的元素,而是元素內才元素

>>> tlist=('a','b',['c','d'])
>>> tlist
('a', 'b', ['c', 'd'])

修改元素“['c','d']”列表中的值、

>>> tlist[2][0]='x'
>>> tlist[2][1]='y'
>>> tlist
('a', 'b', ['x', 'y'])
>>> 

對於tuple來說它只能保證它括號內的基本元素不變,但是元素內在值不在限制內,例如上面的列子tlist有三個元素分別是:'a','b','[]',而元素'[]'是一個列表,它包含值'c','d',所以元素列表'[]'的值不在tuple的限制之內了。

總結

在物件導向的語言裡,所有元素的都稱為物件,所以list和tuple都是物件;而list是可變物件,tuple是不可變物件(前提tuple中不能存在list)。 

 

 

備註:

    作者:pursuer.chen

    部落格:http://www.cnblogs.com/chenmh

本站點所有隨筆都是原創,歡迎大家轉載;但轉載時必須註明文章來源,且在文章開頭明顯處給明連結。

《歡迎交流討論》

相關文章