Python教程:python中二維列表的創(chuàng)建、訪問、應(yīng)用詳解
歡迎你來到站長在線的站長學(xué)堂學(xué)習(xí)Python知識,本文學(xué)習(xí)的是《python中二維列表的創(chuàng)建、訪問、應(yīng)用詳解》。本知識點主要內(nèi)容有:二維列表的概念、直接定義二維列表、使用嵌套的for循環(huán)創(chuàng)建二維列表、使用列表推導(dǎo)式創(chuàng)建二維列表、二維列表的訪問、二維列表的應(yīng)用。
永久美國免備案虛擬主機1元1天,15元1月,100元1年,1000元永久
站長在線旗下答案網(wǎng)站,全站所有題目,免費查看答案和答案解析
歡迎你來到站長在線的站長學(xué)堂學(xué)習(xí)python知識,本文學(xué)習(xí)的是《Python中二維列表的創(chuàng)建、訪問、應(yīng)用詳解》。本知識點主要內(nèi)容有:二維列表的概念、直接定義二維列表、使用嵌套的for循環(huán)創(chuàng)建二維列表、使用列表推導(dǎo)式創(chuàng)建二維列表、二維列表的訪問、二維列表的應(yīng)用。
二維列表的概念:
二維列表是將其他列表當(dāng)做列表的元素放在一個列表當(dāng)中,也就是列表的嵌套。
站長在線溫馨提示:二維列表是多維列表的基礎(chǔ),未來還會出現(xiàn)三維列表,四維列表等多維列表。
在Python中,創(chuàng)建二維列表有以下3種常用的方法:
1、直接定義二維列表。
在Python中,二維列表就是包含列表的列表。即一個列表的每個元素又都是一個列表。
在創(chuàng)建二維列表時,我們可以直接使用列表的語法格式,進行定義:
listname = [[元素11,元素12,元素13,......,元素1n],
[元素21,元素22,元素23,......,元素2n],
......,
[元素n1,元素n2,元素n3,......,元素nn]]
其中的相關(guān)參數(shù)說明如下:
listname:表示要生成的列表名稱。
[元素11,元素12,元素13,......,元素1n]:表示二維列表的第1行(也是一個列表)。其中元素11代表第1行第1列,元素12代表第1行第2列,以此類推,直到元素1n代表第1行第n列。
[元素21,元素22,元素23,......,元素2n]:表示二維列表的第2行(也是一個列表)。其中元素21代表第2行第1列,元素22代表第2行第2列,以此類推,直到元素2n代表第2行第n列。
[元素n1,元素n2,元素n3,......,元素nn]:表示二維列表的第n行(也是一個列表)。其中元素n1代表第n行第一列,元素n2代表第n行第2列,以此類推,直到元素nn代表第n行第n列。
例如,定義一個某中學(xué)9年級1班3位同學(xué)的語數(shù)英的成績列表,代碼如下:
cj = [['名字','語文','數(shù)學(xué)','英語'],
['張三',88,98,95],
['李四',85,99,91],
['王五',86,88,89]]
print(cj)
運行上面代碼,創(chuàng)建的二維列表如下:
[['名字', '語文', '數(shù)學(xué)', '英語'], ['張三', 88, 98, 95], ['李四', 85, 99, 91], ['王五', 86, 88, 89]]
>>>
2、使用嵌套的for循環(huán)創(chuàng)建二維列表。
在Python中,創(chuàng)建二維列表,可以使用嵌套的for循環(huán)來實現(xiàn),如創(chuàng)建一個5行5列的二維列表,可以使用下面代碼:
s = [] # 創(chuàng)建一個空列表
for i in range(5): # 創(chuàng)建一個5行的列表(行)
s.append([]) # 在空的列表中添加空的列表
for j in range(5): # 循環(huán)每一行的每一個元素(列)
s[i].APPend(j) # 為內(nèi)層列表添加元素
print(s) # 輸出列表
運行上面的代碼,創(chuàng)建的二維列表如下:
[[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4]]
>>>
3、使用列表推導(dǎo)式創(chuàng)建二維列表。
我們剛剛在上一個知識點《在python中的列表推導(dǎo)式詳解》學(xué)習(xí)過列表推導(dǎo)式。列表推導(dǎo)式就是可以快速生成一個列表,或者根據(jù)某個列表生成滿足指定需求的列表。
在這里我們也可以使用列表推導(dǎo)式來創(chuàng)建二維列表,并且是被推薦的方法,而且語法簡單。
比如使用列表推導(dǎo)式的方法創(chuàng)建一個5行5列的二維列表,代碼如下:
s = [[j for j in range(5)] for i in range(5)]
print(s)
執(zhí)行上面代碼,創(chuàng)建的二維列表結(jié)果如下:
[[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4]]
>>>
4、二維列表的訪問
我們在創(chuàng)建好二維列表以后,可以通過下列語法,對列表元素的訪問:
listname[索引1][索引2]
其中,相關(guān)的參數(shù)說明為:
listname:表示列表的名稱
索引1:列表中的行。索引值從0開始,即第一行是索引為0。(索引也稱為下標,索引1也稱為下標1)
索引2:列表中的列。索引值從0開始,即第一列是索引為0。(索引也稱為下標,索引2也稱為下標2)
如,定義一個二維列表,訪問他的第1行,第5列,可以使用下面代碼:listname[0,4]
s = [[j for j in range(5)] for i in range(5)] # 定義一個5行5列的二維列表
print("5行5列的列表為:",s) # 輸出二維列表
print("其中第1行,第5列為:",s[0][4]) # 輸出第1行,第5列的元素
運行結(jié)果為:
5行5列的列表為: [[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4]]
其中第1行,第5列為: 4
>>>
5、二維列表的應(yīng)用
使用二維列表輸出不同版式的古詩《靜夜思》
-- 橫版 --
床前明月光
疑是地上霜
舉頭望明月
低頭思故鄉(xiāng)
-- 豎版 --
低舉疑床
頭頭是前
思望地明
故明上月
鄉(xiāng)月霜光
站長在線溫馨提醒:橫版是從左往右讀,豎版是從右往左讀的。
我們在idle中新建一個文件,在該文件中,定義4個字符串為《靜夜思》的詩句,再定義一個二維列表,使用嵌套的for循環(huán),將古詩以橫版輸出,再將二維列表進行逆序排列,最后使用嵌套的for循環(huán),將古詩以豎版輸出,代碼如下:
str1 = '床前明月光'
str2 = '疑是地上霜'
str3 = '舉頭望明月'
str4 = '低頭思故鄉(xiāng)'
verse = [list(str1), list(str2), list(str3), list(str4)] # 定義一個二維列表
print('\n-- 橫版 --\n')
for i in range(4): # 循環(huán)古詩的每一行
for j in range(5): # 循環(huán)每一行的每個字(列)
if j == 4: # 如果是一行中的最后一個字
print(verse[i][j]) # 換行輸出
else:
print(verse[i][j], end='') # 不換行輸出
verse.reverse() # 對列表進行逆序排列
print('\n-- 豎版 --\n')
for i in range(5): # 循環(huán)每一行的每個字(列)
for j in range(4): # 循環(huán)新逆序排列后的第一行
if j == 3: # 如果是最后一行
print(verse[j][i]) # 換行輸出
else:
print(verse[j][i], end='') # 不換行輸出
運行結(jié)果如下:
-- 橫版 --
床前明月光
疑是地上霜
舉頭望明月
低頭思故鄉(xiāng)
-- 豎版 --
低舉疑床
頭頭是前
思望地明
故明上月
鄉(xiāng)月霜光
>>>
原理解析:
5.1、先將古詩的每一行的字符串,使用list()
函數(shù)轉(zhuǎn)換成列表。列表代碼如下:
[['床','前','明','月','光'],
['疑','是','地','上','霜'],
['舉','頭','望','明','月'],
['低','頭','思','故','鄉(xiāng)']]
5.2、列表對象的reverse()
方法用于對列表進行逆向排序,將列表的最后一個移到第一個,倒數(shù)第二個移到第二個,以此類推。代碼如下:
[['低', '頭', '思', '故', '鄉(xiāng)'],
['舉', '頭', '望', '明', '月'],
['疑', '是', '地', '上', '霜'],
['床', '前', '明', '月', '光']]
5.3、橫版是按行打印,豎版卻是按列打印,按列打印如下:
低舉疑床
頭頭是前
思望地明
故名上月
鄉(xiāng)月霜光
看見了吧,我們把讀不通順的,按列打印的“低舉疑床,頭頭是前,思望地明,故名上月,鄉(xiāng)月霜光”就正是我們要的按豎排打印的詩。豎排的寫法是從右往左寫的。讀也從右邊讀起,就正是我們的想要的詩了。
到此為止,本文主題《python中二維列表的創(chuàng)建、訪問、應(yīng)用詳解》中的二維列表的概念、直接定義二維列表、使用嵌套的for循環(huán)創(chuàng)建二維列表、使用列表推導(dǎo)式創(chuàng)建二維列表、二維列表的訪問、二維列表的應(yīng)用。就到此講解完畢了,還有不懂的可以留言哦!
官方網(wǎng)站的文章沒有留言,可以免費進官方微信群討論哦。
本文地址:http://003188.cn/pythonerweiliebiao.html
阿里云虛擬主機1G空間,120元一年
香港、美國虛擬主機100元一年,1000元永久
騰訊云雙十一0.4折起,2核8G5M三年僅700元,2核4G8M三年僅198元
猜你喜歡