两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

二維列表是將其他列表當(dāng)做列表的元素放在一個列表當(dāng)中,也就是列表的嵌套。有接觸過C或C++的可能了解數(shù)組這個概念,在Python中數(shù)組存在于第三方庫中,因此在不安裝第三方插件的前提下我們想要在Python中使用數(shù)組方法,就要采用二維列表這個方法。

實際上列表中的元素可以是任何數(shù)據(jù)類型,我們看個例子:

my_list = [[1,2,3,4,5],'dotcpp',{1,2,3,},('www','dotcpp','com')]
print(my_list)

輸出結(jié)果為:

[[1, 2, 3, 4, 5], 'dotcpp', {1, 2, 3}, ('www', 'dotcpp', 'com')]

在這個列表中包含了列表,字符串,集合,元組。當(dāng)一個列表中的元素全部為列表的時候,是我們最常用的二維列表,下面會介紹幾種二維列表的創(chuàng)建方法及其訪問方式。

1. 直接創(chuàng)建法

直接創(chuàng)建法就是定義了列表名字之后直接進行輸入,我們來定義一個簡單的小鍵盤,即1-9:

my_list = [[1,2,3],[4,5,6],[7,8,9]]
print(my_list)

輸出為:

[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

我們在理解的時候可以這樣理解:

索引012
0123
1456
2789

由圖可以看,my_list[0]對應(yīng)的就是[1,2,3],因此我們在訪問1的時候,他對應(yīng)的坐標(biāo)就為(0,0),我們可以通過索引訪問,即my_list[0][0],它的值對應(yīng)的就是1,其他值訪問的方式和它一樣,像元素9對應(yīng)的訪問方式就為my_list[2][2]。

2. 循環(huán)創(chuàng)建法

使用循環(huán)也可以實現(xiàn)而為列表的創(chuàng)建,通常會采用for循環(huán)來實現(xiàn),我們來創(chuàng)建一個6*6的二維列表,代碼如下:

my_list = []#先創(chuàng)建一個主列表
for i in range(6):#循環(huán)遍歷6次,依次為主列表的每個元素創(chuàng)建新的列表
    j = []#先創(chuàng)建新列表并添加入主列表中
    my_list.append(j)
    for m in range(1,7):
        j.append(m)#為子列表添加元素
print(my_list)#輸出

輸出為:

[[1, 2, 3, 4, 5, 6],
[1, 2, 3, 4, 5, 6], 
[1, 2, 3, 4, 5, 6], 
[1, 2, 3, 4, 5, 6], 
[1, 2, 3, 4, 5, 6], 
[1, 2, 3, 4, 5, 6]]

輸出的實際結(jié)果應(yīng)是在一行中,為了方便大家理解所以這樣排列,大家也可以通過while循環(huán)嘗試一下去創(chuàng)建一個二維列表。

3. 列表推導(dǎo)創(chuàng)建法

使用列表推導(dǎo)式也是可以創(chuàng)建二維列表的,上一節(jié)我們剛剛學(xué)習(xí)過列表推導(dǎo)式,因此我們可以直接使用這種方式來簡化我們的代碼。

我們再次創(chuàng)建一個六行六列的二維列表,它的代碼就相對簡潔很多,代碼如下:

my_list = [[i for i in range(1,7)] for j in range(1,7)]
print(my_list)

輸出為:

[[1, 2, 3, 4, 5, 6],
[1, 2, 3, 4, 5, 6], 
[1, 2, 3, 4, 5, 6], 
[1, 2, 3, 4, 5, 6], 
[1, 2, 3, 4, 5, 6], 
[1, 2, 3, 4, 5, 6]]

這種方式的不僅節(jié)省時間還優(yōu)化了代碼,等同于循環(huán)創(chuàng)建了6個列表并賦予了6個值,最后他們是放在了一個列表中構(gòu)成了二維列表。

4. 例題

再通過一個例子來進一步了解一下。

我們想要創(chuàng)建一個6*6的列表,然后里面的值從1-100中隨機取值。代碼如下:

import random #random屬于系統(tǒng)庫中的模塊,可以隨時調(diào)用,這里簡單的了解一下
my_list = []#先創(chuàng)建列表
for i in range(6):#循環(huán)創(chuàng)建6個列表并放入my_list中
    j = []
    my_list.append(j)
    for k in range(6):
        c = random.randint(1,100)#調(diào)用了random中的一個生成隨機數(shù)的方法,把生成的隨意數(shù)的值賦給c
        j.append(c)#把c的值加入到列表j中
print(my_list)

輸出為:

[[52, 83, 15, 35, 54, 60],
 [17, 61, 77, 99, 60, 50], 
 [88, 81, 9, 61, 76, 95], 
 [21, 52, 20, 49, 10, 61], 
 [94, 81, 48, 27, 80, 9], 
 [1, 94, 57, 66, 95, 97]]

這道題的思路和上面第二種方法是一致的,如果對列表推導(dǎo)式掌握的不熟練的同學(xué)可以在初期使用這種方式,它對比于前面的例子增添了一個隨機取值功能。

5. 總結(jié)

關(guān)于二維列表,這一點對于要參加競賽的同學(xué)很重要,不管是之后遇到迷宮問題還是2n皇后問題,都離不開二維列表的使用,因此在這里先簡單的介紹一下,大家在可以初步了解,在后續(xù)競賽題中會有關(guān)于這兩種類型題的講解,當(dāng)然也能更進一步的去了二維列表。


點贊(1)

C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點擊了解:

一點編程也不會寫的:零基礎(chǔ)C語言學(xué)練課程

解決困擾你多年的C語言疑難雜癥特性的C語言進階課程

從零到寫出一個爬蟲的Python編程課程

只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程

信息學(xué)奧賽或C++選手的 必學(xué)C++課程

藍橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程

手把手講解近五年真題的藍橋杯輔導(dǎo)課程

Dotcpp在線編譯      (登錄可減少運行等待時間)