Python教程(2.6)——list和tuple簡介

Python中內置的類型有list和tuple。html

 

List

 

list相似於C/C++的數組,能夠存儲多個數字。例如你可能會須要存儲一個班裏全部人的名字。這時就能夠用到list。list中存儲的數據叫作元素(element)。數組

 

建立list

 

在Python中,使用[...]表示list:app

 

>>> names = ['Amy', 'Bob', 'Charles']

 

names是一個list類型的變量,裏面有'Amy'、'Bob'和'Charles'三個元素。函數

 

能夠用[]表示一個空list:spa

 

>>> names = []

 

注意:code

 

1. []裏的元素(若是有兩個即以上)須要用逗號(,)分隔。htm

 

2. list中的元素類型能夠不一樣:對象

 

>>> L = [123, False, 'spam']

 

訪問list中的元素

 

像字符串同樣,使用l[index]獲取l(類型爲list)的索引爲index的元素:blog

 

>>> names[0]
'Amy'
>>> names[1]
'Bob'
>>> names[2]
'Charles'

 

也可使用負索引,具體不細說了,上一章已經講過。教程

 

設置list的元素

 

要設置list索引爲index的元素,須要先拿到,而後直接賦值便可:

 

>>> names = ['Amy', 'Bob', 'Charles']
>>> names[0] = 'Tom'
>>> names
['Tom', 'Bob', 'Charles']

 

 

獲取list長度

 

像字符串同樣,使用len()獲取list長度:

 

>>> len(names)
3

 

[]的長度爲0:

 

>>> len([])
0
>>> names = [] >>> len(names) 0

 

向list追加元素

 

list是Python的對象,在對象中有一個叫作「方法」的概念,「方法」就是指對象的函數。list對象有append()方法,能夠向list追加元素:

 

>>> names.append('Donald')
>>> names
['Amy', 'Bob', 'Charles', 'Donald']

 

刪除list元素

 

List對象有pop()方法,能夠刪除指定位置上的元素:

 

>>> names = ['Amy', 'Bob', 'Charles']
>>> names.pop(1)
['Amy', 'Charles']
>>> names.pop()
['Amy']

 

pop(index)刪除索引爲index的元素,pop()刪除最後一個元素。注意pop()方法返回刪除相應元素後的list,這就是爲何l.pop()和l.pop(index)會顯示結果。

 

清空list

 

清空list很簡單,只要設爲[]就行了:

 

>>> names = []
>>> names
[]

 

list嵌套

 

前面說過,list的每一個元素能夠不同。list甚至能夠包含list:

 

>>> positions = [
...     [0, 0, 0],
...     [0, 1, 0],
...     [2, 1, 5]
... ]
>>> positions
[[0, 0, 0], [0, 1, 0], [2, 1, 5]]

 

在這個例子中,咱們獲取positions中的元素,元素類型也是list:

 

>>> positions[0]
[0, 0, 0]
>>> positions[1]
[0, 1, 0]
>>> positions[2]
[2, 1, 5]

 

若是還要獲取以上list中的元素呢?假設要獲取positions[0]的第1個元素,通常的list咱們直接使用[0]來獲取第一個元素,對吧?這裏也同樣,直接把[0]加在positions[0]後面便可:

 

>>> positions[0][0]
0

 

其它數也是同樣的:

 

>>> positions[1][1]
1
>>> positions[2][0]
2

 

Tuple簡介

 

Python還支持一種叫作tuple的數據類型。Tuple和list相似,可是不可變(immutable)的。

 

建立tuple

 

使用(...)表示tuple:

 

>>> cubes = (1, 8, 27, 64)

 

空tuple能夠用()表示:

 

>>> cubes = ()

 

可是若是是一個元素的tuple呢?好像是這樣寫的:

 

>>> cubes = (1)

 

可是如今檢查cubes會發現:

 

>>> cubes
1

 

cubes是個int!這裏的(1)被看做整數1了。

 

所以,須要在()中加一個逗號(,),表示這是一個tuple:

 

>>> cubes = (1,)
>>> cubes
(1,)

 

Python在顯示一個元素的tuple時,也會加一個逗號。

 

其餘操做

 

除不能設置、追加、刪除元素外,tuple的操做和list類似。

 

注意

 

雖說tuple是不可變的,可是也有一些奇怪的地方。下面是一個含有list的tuple:

 

>>> t = (1, 2, [1, 2])

 

有下列語句:

 

>>> t[2][0] = 10
>>> t
(1, 2, [10, 2])

 

很奇怪吧,tuple的元素怎麼被改變了?!

 

答案是,t被建立時,裏面的元素分別是一、二、[1, 2]。後來咱們把[1, 2]的內容改爲了[10, 2],看起來t的元素變了,但這裏的「不變」指指向不變,雖然t[2]的內容改變了,可是一直是同一個list。

 

可是像下面這樣就不行了:

 

>>> t[2] = 10
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment

 

(此文未完,原文連接:http://www.cnblogs.com/collectionne/p/6878075.html

相關文章
相關標籤/搜索