更新時(shí)間:2021-07-01 來(lái)源:黑馬程序員 瀏覽量:
Python列表是一個(gè)可變的序列,它沒(méi)有長(zhǎng)度的限制,可以包含任意個(gè)元素。列表的長(zhǎng)度和元素都是可變的,開(kāi)發(fā)人員可以自由地對(duì)列表中的數(shù)據(jù)進(jìn)行各種操作,包括添加、刪除、修改元素。
Python列表的表現(xiàn)形式類(lèi)似于其它語(yǔ)言中的數(shù)組,列表中的元素使用“[]”包含,各元素之間使用英文逗號(hào)分隔,例如:
>>> list_one = [] # 創(chuàng)建空列表 >>> list_one []
>>> list_two = [1, 10, 55, 20, 6] # 列表元素的類(lèi)型均是整型 >>> list_two [1, 10, 55, 20, 6] >>> list_thr = [10, 'word', True, [6, 1]] # 列表中元素的類(lèi)型不同 >>> list_thr [10, 'word', True, [6, 1]]
通過(guò)list()函數(shù)可以將已有的元組或字符串轉(zhuǎn)換為列表,例如:
>>> words = 'Python' >>> list(words) # 將字符串轉(zhuǎn)換為列表 ['P', 'y', 't', 'h', 'o', 'n'] >>> tuple_demo = (1, 3, 5, 7, 9) >>> list(tuple_demo) # 將元組轉(zhuǎn)換為列表 [1, 3, 5, 7, 9]
使用循環(huán)可以對(duì)列表中的元素進(jìn)行遍歷操作,基本方式如下:
for 循環(huán)變量 in 列表: 語(yǔ)句塊
例如,對(duì)列表['P', 'y', 't', 'h', 'o', 'n']執(zhí)行遍歷操作,具體示例如下:
>>> for char in ['P', 'y', 't', 'h', 'o', 'n']: # 遍歷列表的元素 ... print(char) ... P y t h o n
列表支持索引和切片操作。例如,修改列表[11,22,33]中的數(shù)據(jù),代碼如下所示:
>>> nums = [11, 22, 33] >>> nums[0] = 55 # 將列表中的第0項(xiàng)修改為55 >>> nums [55, 22, 33] >>> nums[0:2] = [0, 1] # 將列表中的第0項(xiàng)修改為0,第1項(xiàng)修改為1 >>> nums [0, 1, 33] >>> list1 = [5, 6] >>> nums += list1 # nums列表添加list1列表的元素 >>> nums [0, 1, 33, 5, 6]
以上代碼中先定義了一個(gè)列表nums,之后對(duì)列表執(zhí)行替換操作,即將列表的第0項(xiàng)數(shù)據(jù)替換為55,將列表中的第0項(xiàng)、第1項(xiàng)數(shù)據(jù)分別替換為[0, 1],因?yàn)橐鎿Q的數(shù)據(jù)個(gè)數(shù)與被替換的數(shù)據(jù)個(gè)數(shù)相同,所以列表nums的長(zhǎng)度沒(méi)有發(fā)生變化。
當(dāng)使用一個(gè)列表的元素改變另一個(gè)列表的數(shù)據(jù)時(shí),Python并不要求兩個(gè)列表的長(zhǎng)度相同,但是要遵循“多增少減”的原則,例如:
>>> nums[1:5] = [11, 7] # nums[1:5]的長(zhǎng)度比[11, 7]大 >>> nums [0, 11, 7] >>> nums[0:2] = [10, 5, 0] # nums[0:2]的長(zhǎng)度比[10, 5, 0]小 >>> nums [10, 5, 0, 7]
以上代碼的子序列nums[1:5]中包含了4個(gè)元素,使用[11,7] 重新對(duì)其賦值時(shí)只給了兩個(gè)元素,此時(shí)列表nums的元素減少了2個(gè);同樣,子序列nums[0:2]中包含兩個(gè)元素,使用[10, 5, 0]重新對(duì)其賦值時(shí)給出了3個(gè)元素,此時(shí)列表nums的元素增加了1個(gè)。由此可知,使用一個(gè)列表給另一個(gè)列表賦值也可以實(shí)現(xiàn)列表的增加和刪除操作。
Python為列表類(lèi)型提供了一些常見(jiàn)操作,具體如表1所示。
表1 列表的常見(jiàn)操作
常見(jiàn)操作 | 說(shuō)明 |
---|---|
len(s) | 計(jì)算序列s的長(zhǎng)度(元素個(gè)數(shù)) |
min(s) | 返回序列s中的最小元素 |
max(s) | 返回序列s中的最大元素 |
list.append() | 在列表list的末尾添加元素x |
list.extend() | 在列表list中添加列表lx的元素,與+=功能相同 |
list.insert() | 在列表list索引為i的元素之前插入元素x |
listpop() | 取出并刪除列表list中索引為i的元素x |
List.remove() | 刪除列表list中第一次出現(xiàn)的元素x |
list.reverse() | 將列表list的元素反轉(zhuǎn) |
list.clear() | 刪除列表list中的所有元素 |
list.copy() | 生成新列表,并拷貝列表list中的所有元素 |
list.sort() | 將列表list中的元素排序 |
列表和數(shù)組的區(qū)別
接觸過(guò)其它語(yǔ)言的讀者可能聽(tīng)說(shuō)過(guò)數(shù)組這個(gè)類(lèi)型,比如C語(yǔ)言,在很多編程語(yǔ)言中都使用數(shù)組存儲(chǔ)一組數(shù)據(jù),而少數(shù)的編程語(yǔ)言采用列表這個(gè)類(lèi)型。數(shù)組與列表非常類(lèi)似,但是并不完全一樣,它們兩個(gè)主要有以下區(qū)別:
(1) 數(shù)組在創(chuàng)建時(shí)需要分配大小,數(shù)組的大小是固定的,只能容納有限的元素。列表則沒(méi)有預(yù)先分配大小的要求,可以在使用的過(guò)程中動(dòng)態(tài)地插入任意數(shù)量的元素。
(2) 數(shù)組和列表都可以存儲(chǔ)任意類(lèi)型的元素,但是數(shù)組中要求元素的類(lèi)型必須是一樣的,要么都是數(shù)字類(lèi)型,要么都是字符串或其它類(lèi)型。列表則沒(méi)有這個(gè)要求,它可以存儲(chǔ)不同整數(shù)、浮點(diǎn)數(shù)、字符串、甚至列表。
大數(shù)據(jù)課程需要學(xué)習(xí)Python嗎?
2021-06-28Python+大數(shù)據(jù)開(kāi)發(fā)就業(yè)方向有哪些?
2021-06-28為什么pyhon+大數(shù)據(jù)課程中Java和python課程減少了?
2021-06-28原本大數(shù)據(jù)的課程就獨(dú)立有6個(gè)月,現(xiàn)在大數(shù)據(jù)部分課程只有3個(gè)月時(shí)間夠用嗎?
2021-06-28python+大數(shù)據(jù)課程難不難學(xué)?
2021-06-28Python和大數(shù)據(jù)課程為什么融合?
2021-06-28