Python筆記 List和Tuple型別

2022-05-10 13:40:23 字數 3131 閱讀 3675

python內建的一種資料型別是列表:list。list是一種有序的集合,是按照順序排列的,可以隨時新增和刪除其中的元素。

>>> l = ['michael', 100, true]

>>> print l

['michael', 100, true]

要列印第n名同學的名字,用 l[n-1]。例:列印滴3名學生資訊:

>>> l = ['adam', 'lisa', 'bart']

>>> print l[3]

traceback (most recent call last):

file "", line 1, in indexerror: list index out of range

bart同學是最後一名,俗稱倒數第一,所以,我們可以用 -1 這個索引來表示最後乙個元素:

>>> l = ['adam', 'lisa', 'bart']

>>> print l[-1]

bart

類似的,倒數第二用 -2 表示,倒數第三用 -3 表示,倒數第四用 -4 表示.使用倒序索引時,也要注意不要越界。

>>> l = ['adam', 'lisa', 'bart']

>>> print l

['adam', 'lisa', 'bart', 'paul']

list的 insert(index,'content') 方法,第乙個引數是索引號,第二個引數是待新增的新元素:

>>> l = ['adam', 'lisa', 'bart']

>>> l.insert(0, 'paul')

>>> print l

['paul', 'adam', 'lisa', 'bart']

pop()方法總是刪掉list的最後乙個元素,並且它還返回這個元素;

刪除指定位置元素。例:paul的索引是2,用 pop(2)把paul刪掉:

>>> l = ['adam', 'lisa', 'paul', 'bart']

>>> l.pop(2)

'paul'

>>> print l

['adam', 'lisa', 'bart']

指定位置替換

>>> l[2] = 'paul'

>>> print l

l = ['adam', 'lisa', 'paul']

tuple是另一種有序的列表,中文翻譯為「 元組 」。tuple 和 list 非常類似,但是,tuple一旦建立完畢,就不能修改了。

建立tuple和建立list唯一不同之處是用( )替代了[ ]。同樣是表示班裡同學的名稱,用tuple表示如下:

>>> t = ('adam', 'lisa', 'bart')
>>> t[0] = 'paul'

traceback (most recent call last):

file "", line 1, in typeerror: 'tuple' object does not support item assignment

tuple和list一樣,可以包含 0 個、1個和任意多個元素。包含多個元素的 tuple,前面我們已經建立過了。包含 0 個元素的 tuple,也就是空tuple,直接用 ()表示:

>>> t = ()

>>> print t

()

建立包含1個元素的 tuple 呢?來試試:

>>> t = (1)

>>> print t

1

好像**不對!t 不是 tuple ,而是整數1。為什麼呢?

因為()既可以表示tuple,又可以作為括號表示運算時的優先順序,結果 (1) 被python直譯器計算出結果 1,導致我們得到的不是tuple,而是整數 1。正是因為用()定義單元素的tuple有歧義,所以 python 規定,單元素 tuple 要多加乙個逗號「,」,這樣就避免了歧義:

>>> t = (1,)

>>> print t

(1,)

python在列印單元素tuple時,也自動新增了乙個「,」,為了更明確地告訴你這是乙個tuple。多元素 tuple 加不加這個額外的「,」效果是一樣的:

>>> t = (1, 2, 3,)

>>> print t

(1, 2, 3)

前面我們看到了tuple一旦建立就不能修改。現在,我們來看乙個「可變」的tuple:

>>> t = ('a', 'b', ['a', 'b'])
注意到 t 有 3 個元素:'a','b'和乙個list:['a', 'b']。list作為乙個整體是tuple的第3個元素。list物件可以通過 t[2] 拿到:

>>> l = t[2]
然後,我們把list的兩個元素改一改:

>>> l[0] = 'x'

>>> l[1] = 'y'

>>> print t

('a', 'b', ['x', 'y'])

不是說tuple一旦定義後就不可變了嗎?怎麼現在又變了?

別急,我們先看看定義的時候tuple包含的3個元素:

當我們把list的元素'a'和'b'修改為'x'和'y'後,tuple變為:

表面上看,tuple的元素確實變了,但其實變的不是 tuple 的元素,而是list的元素。

tuple一開始指向的list並沒有改成別的list,所以,tuple所謂的「不變」是說,tuple的每個元素,指向永遠不變。即指向'a',就不能改成指向'b',指向乙個list,就不能改成指向其他物件,但指向的這個list本身是可變的!

理解了「指向不變」後,要建立乙個內容也不變的tuple怎麼做?那就必須保證tuple的每乙個元素本身也不能變。

Python3學習筆記 使用list和tuple

有c 基礎,一直對 萬能 的python語言感興趣,目前正在學習廖雪峰老師的python3教程用來入門,這裡記錄一些沒接觸過或與c 有差異的知識,方便自己查閱吧 list fruits 2 banana fruits fruits.insert 3,kiwi fruits fruits.pop le...

python 資料庫查詢返回list或tuple

mysqldb預設查詢結果都是返回tuple,輸出時候不是很方便,必須按照0,1這樣讀取,無意中在網上找到簡單的修改方法,就是傳遞乙個cursors.dictcursor就行。預設程式 import mysqldb db mysqldb.connect host localhost user roo...

Python基礎筆記 list和tuple

list 與 tuple 就類似於c語言中的陣列,list 與 tuple 的區別就是list 可修改,而tuple不可修改 list用法示例 s l 1,2,3,4 s.extend l s 1,2,3,4 s 1,2,3,4,1,2,3,4 adam s 1,2,3,4,1,2,3,4 adam...