各位CSDN的uu們你們好呀,今天小雅蘭的內(nèi)容是Python中的列表,下面,讓我們進(jìn)入列表的世界吧
列表是什么, 元組是什么
創(chuàng)建列表
訪問(wèn)下標(biāo)
切片操作
遍歷列表元素
列表是什么, 元組是什么
編程中, 經(jīng)常需要使用變量, 來(lái)保存/表示數(shù)據(jù).
如果代碼中需要表示的數(shù)據(jù)個(gè)數(shù)比較少, 我們直接創(chuàng)建多個(gè)變量即可.
num1 = 10
num2 = 20
num3 = 30
#......
但是有的時(shí)候, 代碼中需要表示的數(shù)據(jù)特別多, 甚至也不知道要表示多少個(gè)數(shù)據(jù). 這個(gè)時(shí)候, 就需要用到列表.
列表是一種讓程序猿在代碼中批量表示/保存數(shù)據(jù)的方式
就像我們?nèi)コ匈I(mǎi)辣條, 如果就只是買(mǎi)一兩根辣條, 那咱們直接拿著辣條就走了.
但是如果一次買(mǎi)個(gè)十根八根的, 這個(gè)時(shí)候用手拿就不好拿, 超市老板就會(huì)給我們個(gè)袋子.
這個(gè)袋子, 就相當(dāng)于 列表
袋子中的辣條,就是我們要表示的數(shù)據(jù)
元組和列表相比, 是非常相似的, 只是列表中放哪些元素可以修改調(diào)整, 元組中放的元素是創(chuàng)建元組的時(shí)候就設(shè)定好的, 不能修改調(diào)整.
列表就是買(mǎi)散裝辣條, 裝好了袋子之后, 隨時(shí)可以把袋子打開(kāi), 再往里多加辣條或者拿出去一些辣條.
元組就是買(mǎi)包裝辣條, 廠家生產(chǎn)好了辣條之后, 一包就是固定的這么多, 不能變動(dòng)了.
?
?創(chuàng)建列表
創(chuàng)建列表主要有兩種方式.
- 直接使用字面值創(chuàng)建,[ ]就表示一個(gè)空的列表
- 使用list()來(lái)創(chuàng)建
a=[] print(type(a)) b=list() print(type(b))
如果需要往里面設(shè)置初始值, 可以直接寫(xiě)在 [ ] 當(dāng)中.
元素之間使用 ,來(lái)分割
a=[1,2,3,4] print(a)
列表中存放的元素允許是不同的類(lèi)型. (這一點(diǎn)和 C++ Java 差別較大).
a = [1, 'hello', True,[4,5,6]] print(a)
因?yàn)?list 本身是 Python 中的內(nèi)建函數(shù), 不宜再使用 list 作為變量名。
訪問(wèn)下標(biāo)
可以通過(guò)下標(biāo)訪問(wèn)操作符 [ ] 來(lái)獲取到列表中的任意元素.
?我們把 [ ] 中填寫(xiě)的數(shù)字, 稱(chēng)為 下標(biāo) 或者 索引 .
?
alist = [1, 2, 3, 4]
print(alist[2])
注意: 下標(biāo)是從 0 開(kāi)始計(jì)數(shù)的, 因此下標(biāo)為 2 , 則對(duì)應(yīng)著 3 這個(gè)元素. ?
通過(guò)下標(biāo)不光能讀取元素內(nèi)容, 還能修改元素的值.
alist = [1, 2, 3, 4] alist[2] = 100 print(alist)
如果下標(biāo)超出列表的有效范圍, 會(huì)拋出異常.
alist = [1, 2, 3, 4] print(alist[100])
因?yàn)橄聵?biāo)是從 0 開(kāi)始的, 因此下標(biāo)的有效范圍是 [0, 列表長(zhǎng)度 - 1]. 使用 len 函數(shù)可以獲取到列表的元素個(gè)數(shù).
alist = [1, 2, 3, 4] print(len(alist))
?下標(biāo)可以取負(fù)數(shù). 表示 "倒數(shù)第幾個(gè)元素"
alist = [1, 2, 3, 4] print(alist[3]) print(alist[-1])
?alist[-1] 相當(dāng)于 alist[len(alist) - 1]
切片操作
通過(guò)下標(biāo)操作是一次取出里面第一個(gè)元素.
通過(guò)切片, 則是一次取出一組連續(xù)的元素, 相當(dāng)于得到一個(gè)子列表
使用 [ : ] 的方式進(jìn)行切片操作.
alist = [1, 2, 3, 4] print(alist[1:3])
?
alist[1:3] 中的 1:3 表示的是 [1, 3) 這樣的由下標(biāo)構(gòu)成的前閉后開(kāi)區(qū)間.
也就是從下標(biāo)為 1 的元素開(kāi)始(2), 到下標(biāo)為 3 的元素結(jié)束(4), 但是不包含下標(biāo)為 3 的元素.
所以最終結(jié)果只有 2, 3
??
切片操作中可以省略前后邊界
alist = [1, 2, 3, 4] print(alist[1:]) # 省略后邊界, 表示獲取到列表末尾 print(alist[:2]) # 省略前邊界, 表示從列表開(kāi)頭獲取 print(alist[:-1]) # 此處切片中的下標(biāo)也可以寫(xiě)成負(fù)數(shù) print(alist[:]) # 省略?xún)蓚€(gè)邊界, 表示獲取到整個(gè)列表.
切片操作還可以指定 "步長(zhǎng)" , 也就是 "每訪問(wèn)一個(gè)元素后, 下標(biāo)自增幾步"
alist = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] print(alist[::1]) print(alist[::2]) print(alist[::3]) print(alist[::5])
切片操作指定的步長(zhǎng)還可以是負(fù)數(shù), 此時(shí)是從后往前進(jìn)行取元素. 表示 "每訪問(wèn)一個(gè)元素之后, 下標(biāo)自減幾步"
alist = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] print(alist[::-1]) print(alist[::-2]) print(alist[::-3]) print(alist[::-5])
如果切片中填寫(xiě)的數(shù)字越界了, 不會(huì)有負(fù)面效果. 只會(huì)盡可能的把滿足條件的元素獲取到.
alist = [1, 2, 3, 4] print(alist[100:200])
?遍歷列表元素
"遍歷" 指的是把元素一個(gè)一個(gè)的取出來(lái), 再分別進(jìn)行處理.
最簡(jiǎn)單的辦法就是使用 for 循環(huán)
alist = [1, 2, 3, 4] for elem in alist: print(elem)
也可以使用 for 按照范圍生成下標(biāo), 按下標(biāo)訪問(wèn)
alist = [1, 2, 3, 4] for i in range(0, len(alist)): print(alist[i])
?也可以修改列表的值:
alist = [1, 2, 3, 4, 5 ] for i in range(0, len(alist)): alist[i]=alist[i]+10 print(alist)
?還可以使用 while 循環(huán). 手動(dòng)控制下標(biāo)的變化
alist = [1, 2, 3, 4] i = 0 while i < len(alist): print(alist[i]) i += 1
好啦,小雅蘭今天的學(xué)習(xí)內(nèi)容就到這里啦,還要繼續(xù)加油噢?。?!文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-417368.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-417368.html
到了這里,關(guān)于列表和元組(上)——“Python”的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!