日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python tuple类型和list_Python 04_List 和 Tuple 类型

發(fā)布時間:2025/4/17 python 167 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python tuple类型和list_Python 04_List 和 Tuple 类型 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

01 Python 創(chuàng)建list

Python 內(nèi)置的一種數(shù)據(jù)結(jié)構(gòu)類型是列表:list !list 是一種有序的集合,可以隨時添加和刪除其中的元素。是數(shù)學(xué)意義上的有序集合, 也就是說,list 中的元素是按照順序排列的。

構(gòu)造 list ,直接用 [ ] 把 list 所有的元素包括起來,就是一個 list 對象。 通常情況下,會把 list 賦值給一個變量,這樣就可以通過變量來引用 list。

由于 Python 是動態(tài)語言, 所以 list 中包含的元素并不要求都必須是同一種數(shù)據(jù)類型,完全可以在 list 中包含各種數(shù)據(jù)類型:

A = ['one', 100, True]

一個元素也沒有的 list , 就是空 list。

小練習(xí):假設(shè)班里有3名同學(xué):Adam,Lisa和Bart,他們的成績分別是 95.5,85 和 59,請按照 名字, 分數(shù), 名字, 分數(shù)... 的順序按照分數(shù)從高到低用一個list表示,然后打印出來。

>>>L = ['Adam', 95.5, 'Lisa', 85, 'Bart', 59]

>>>print L

02 Python 按照索引訪問 list

list 是一個有序的集合,那么我們就可以用一個 list 按分數(shù)從高到低表示出班里的同學(xué):

L = ['Adam', 'Lisa', 'Bart']

從 list 中獲取 N 位同學(xué)就是通過索引來獲取 list 中的指定元素。但是一定不能越界! 這點跟 C 的數(shù)組類似。 沒學(xué)過 C 的就先自己體會吧。

03 Python 之倒序訪問 list

還是以上面的班級的 3 個同學(xué)為例:

L = ['Adam', 'Lisa', 'Bart']

如果要獲取最后一位同學(xué),那么是不是要知道 list 中有多少元素,3 個元素,那么就是 L[2] , 如果我們使用倒序,則可以這樣 L[-1] 表示倒數(shù)第一個, L[-2] 表示倒數(shù)第二個。

>>>print L[-1]

Bart

當(dāng)然, 這樣使用的時候, 也不能越界!

04 Python 之添加新元素

如果這個時候, 有一位新同學(xué)轉(zhuǎn)到班上來,那么該怎樣把新同學(xué)添加到現(xiàn)在的 list 中呢?

方法一: 就是使用 list 的 append() 方法,把新同學(xué)添加到 list 的末尾。 記住 append() 是添加到末尾。

>>>L = ['Adam', 'Lisa', 'Bart']

>>>L.append('Paul')

>>>print L

['Adam', 'Lisa', 'Bart', 'Paul']

方法二: 就是 list 中 insert() 方法,它接受兩個參數(shù),第一個參數(shù)是索引號,第二個參數(shù)是待添加的新元素:

>>>L = ['Adam', 'Lisa', 'Bart']

>>>L.insert(0, 'Paul')

>>>print L

['Adam', 'Lisa', 'Bart', 'Paul']

這樣就可以將 Paul 添加到索引為 0 的位置了。

05 Python 從 list 中刪除元素

現(xiàn)在說是 Paul 轉(zhuǎn)來班上, 那么 Paul 如果后來又要轉(zhuǎn)走, 那么怎么從現(xiàn)在的 list 中刪除呢?

如果 Paul 在最后一個, 那么可以用 list 的 pop() 方法刪除:

>>>L = ['Adam', 'Lisa', 'Bart', 'Paul']

>>>L.pop()

'Paul'

>>>print L

['Adam', 'Lisa', 'Bart']

從而得知, pop() 方法總是刪掉 list 的最后一個元素,而且還會返回這個元素,所以在執(zhí)行 L.pop() 之后會打印出 'Paul'。那么不在最后一個位置應(yīng)該怎么破呢?

例如我們要刪除 'Lisa'

>>>L = ['Adam', 'Lisa', 'Bart', 'Paul']

>>>L.pop(1)

'Lisa'

>>>print L

['Adam','Bart', 'Paul']

把索引值填入 pop() 的參數(shù)中就可以了。

練習(xí)題:注意下面的編輯器代碼中 list 如下:

L = ['Adam', 'Lisa', 'Paul', 'Bart']

Paul的索引是2,Bart的索引是3,如果我們要把Paul和Bart都刪掉,請解釋下面的代碼為什么不能正確運行:

L.pop(2)

L.pop(3)

怎樣調(diào)整代碼可以把Paul和Bart都正確刪除掉?

L = ['Adam', 'Lisa', 'Paul', 'Bart']

L.pop(2)

L.pop(3)

print L

06 Python 中替換元素

如果,Bart同學(xué)要轉(zhuǎn)學(xué)走了,碰巧來了一個Paul同學(xué),要更新班級成員名單,我們可以先把Bart刪掉,再把Paul添加進來。

還可以直接用 Paul 將 Bart 換掉:

>>> L[2] = 'Paul'

>>> print L

L = ['Adam', 'Lisa', 'Paul']

對 list 中的某一個索引值, 就可以直接用新的元素替換原來的元素, list 包含的元素個數(shù)不變。

使用倒序替換掉也行:

>>> L[-1] = 'Paul'

07 Python 之創(chuàng)建 tuple

tuple 是另一種有序的列表, 中文翻譯為 “元組”。 tuple 和 list 非常相似, 但是 tuple 一但建立完成, 就不能修改了。使用 tuple 創(chuàng)建:

>>>T = ('Adam', 'Lisa', 'Paul')

創(chuàng)建 tuple 和創(chuàng)建 list 唯一不同之處是用 () 代替了 [ ] 。那么現(xiàn)在這個 T 就不能改變了, tuple 沒有 append() 方法, 也沒有 pop() 和 insert() 方法。

獲取 tuple 元素的方式和 list 是一模一樣的,我們可以正常使用 T[0],T[-1]等索引方式訪問元素,但是不能賦值成別的元素。

08 Python 之創(chuàng)建單元素 tuple

tuple 和 list 一樣,可以包含 0 個、1個、任意多個元素。 0 個元素的 tuple , 也就是空 tuple, 直接用 () 表示:

>>> t = ()

>>> print t

()

包含一個元素的:

>>> t = (1)

>>> print t

1

結(jié)果是 1 , 而不是 () ;因為在 Python 中, () 既可以表示 tuple, 又可以作為括號表示運算時的優(yōu)先級,結(jié)果 (1) 被 Python 解釋器計算出結(jié)果為 1 。

正因為這樣的歧義, 所以 Python 規(guī)定, 單元素 tuple 要多加一個逗號 “,”,這樣就避免的歧義:

>>> t = (1,)

>>> print t

(1,)

Python在打印單元素tuple時,也自動添加了一個“,”,為了說明這是一個tuple。

多元素 tuple 加不加這個元素,效果都是一樣的。

09 Python 之 “可變” 的 tuple

前面說到了創(chuàng)建了 tuple 就不能修改,那么現(xiàn)在看看 “可變” 的 tuple:

>>> t = ('a', 'b', ['A', 'B'])

然后我們通過 t[2] 拿到 tuple 中的 list 對象:

>>> L = t[2]

然后修改一下 list 中的兩個元素:

>>> L[0] = 'X'

>>> L[1] = 'Y'

>>> print t

('a', 'b', ['X', 'Y'])

結(jié)果是變了、為什么變?

其實改變的不是 tuple ,而是 list 的元素。

tuple一開始指向的list并沒有改成別的list,所以,tuple所謂的“不變”是說,tuple的每個元素,指向永遠不變。即指向'a',就不能改成指向'b',指向一個list,就不能改成指向其他對象,但指向的這個list本身是可變的!

練習(xí):

定義了tuple:

t = ('a', 'b', ['A', 'B'])

由于 t 包含一個list元素,導(dǎo)致tuple的內(nèi)容是可變的。能否修改上述代碼,讓tuple內(nèi)容不可變?

t = ('a', 'b', ('A', 'B'))

print t

總結(jié)

以上是生活随笔為你收集整理的python tuple类型和list_Python 04_List 和 Tuple 类型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。