1. 程式人生 > >初學python(三) list、tuple

初學python(三) list、tuple

目錄
1、list
2、tuple

list、tuple、dict、set都是python內建的一種資料型別,下面就簡單介紹下list、tuple的用法

一、list
list是一種有序的集合,可以隨時新增刪除其中的元素。比如,列出班裡所有同學的名字,就可以用一個list表示:

>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> classmates
['Michael', 'Bob', 'Tracy']

classmates便是一個list,用len可以統計list的元素個數:

>>> 
len(classmates) 3

list如同c語言中的陣列一樣可以通過索引來訪問list每一個位置的元素:

>>> classmates[0]
'Michael'
>>> classmates[1]
'Bob'
>>> classmates[2]
'Tracy'

要注意的是第一個元素的索引是[0],而且當索引超出了範圍時,Python會報一個IndexError錯誤,所以,要確保索引不要越界。如果要取最後一個元素,除了計算索引位置外,還可以用-1做索引,直接獲取最後一個元素:

>>> classmates[-1
] 'Tracy'

以此類推,可以獲取倒數第2個、倒數第3個。

list是一個可變的有序表,所以,可以往list中追加元素到末尾:

>>> classmates.append('Adam')
>>> classmates
['Michael', 'Bob', 'Tracy', 'Adam']

也可以把元素插入到指定的位置,比如索引號為1的位置:

>>> classmates.insert(1, 'Jack')
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy', 'Adam'
]

要刪除list末尾的元素,用pop()方法:

>>> classmates.pop()
'Adam'
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy']

如果要刪除指定位置的元素,則可用pop(i)的方式來實現:

>>> classmates.pop(1)
'Jack'
>>> classmates
['Michael', 'Bob', 'Tracy']

list元素的替換可以通過’=’來直接賦值。
list中的元素可以是任意資料型別,當然也就包括list本身:

char_count = [['w',0],['o',0],['l',0],['d',0]]

二、tuple:
另一種有序列表叫元組:tuple。tuple和list非常類似,但是tuple一旦初始化就不能修改,比如同樣是列出同學的名字:

>>> classmates = ('Michael', 'Bob', 'Tracy')

現在,classmates這個tuple不能變了,它也沒有append()insert()這樣的方法。也不能替換其中的元素。
不可變帶來了不方便,但是卻提高了程式碼的安全性

要注意的是要定義一個只有1個元素的tuple,如果你這麼定義:

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

定義的不是tuple,是1這個數!這是因為括號()既可以表示tuple,又可以表示數學公式中的小括號,這就產生了歧義,因此,Python規定,這種情況下,按小括號進行計算,計算結果自然是1。

所以,只有1個元素的tuple定義時必須加一個逗號,,來消除歧義:

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

Python在顯示只有1個元素的tuple時,也會加一個逗號,,以免你誤解成數學計算意義上的括號。