中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python二維列表創建、轉換及訪問的方法

發布時間:2022-04-27 14:33:51 來源:億速云 閱讀:485 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“Python二維列表創建、轉換及訪問的方法”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Python二維列表創建、轉換及訪問的方法”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

    一、概念

    二維列表的元素還是列表(列表的嵌套),稱之為二維列表。

    需要通過行標和列標來訪問二維列表的元素

    二、創建二維列表

    1、追加一維列標來生成二維列標

    生成一個4行3列的二維列表

    row1 = [3, 4, 5]
    row2 = [1, 5, 9]
    row3 = [2, 5, 8]
    row4 = [7, 8, 9]
    matrix = []
    matrix.append(row1)
    matrix.append(row2)
    matrix.append(row3)
    matrix.append(row4)
    print(matrix)

    輸出結果:

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

    2、直接賦值生成二維列表

    定義一個3行4列的二維列表

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

    輸出結果:

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

    三、一維列標與二維列表的轉換

    1、一維列表轉換成二維列表

    將1到24的全部數字按順序放到一個4行6列的二維列表里

    # 將1到24的全部數字按順序放到一個4行6列的二維列表里
    nums = []
    for i in range(1, 25):
        nums.append(i)
    
    martix = []
    for k in range(4):
        row = []
        for j in range(1, 7):
            row.append(j + 6 * k)
        martix.append(row)
    
    for arr in martix:
        print(arr)

    輸出結果:

    [1, 2, 3, 4, 5, 6]
    [7, 8, 9, 10, 11, 12]
    [13, 14, 15, 16, 17, 18]
    [19, 20, 21, 22, 23, 24]

    2、二維列表轉換成一維列表

    將一個3行5列的二維列表扁平化一維列表

    # 將一個3行5列的二維列表扁平化一維列表
    nums = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15]]
    arr = []
    for i in nums:
        for j in i:
            arr.append(j)
    print(arr)

    輸出結果:

    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]

    3、利用NumPy實現數組的變維操作

    利用NumPy數組提供的 reshape(m, n) 實現數組的變維

    (1)一維數組變成二維數組

    In [31]:import numpy as np
    
    In [32]:arr1 = np.arange(1,25)  # arange() 創建一個等差數組
    
    In [33]:arr2 = arr1.reshape(4, 6)  # reshape()一維轉二維
    
    In [34]:arr2
    Out[34]: 
    array([[ 1,  2,  3,  4,  5,  6],
           [ 7,  8,  9, 10, 11, 12],
           [13, 14, 15, 16, 17, 18],
           [19, 20, 21, 22, 23, 24]])
    
    In [35]:arr2 = arr1.reshape(3, 8)
    
    In [36]:arr2
    Out[36]: 
    array([[ 1,  2,  3,  4,  5,  6,  7,  8],
           [ 9, 10, 11, 12, 13, 14, 15, 16],
           [17, 18, 19, 20, 21, 22, 23, 24]])

    (2)二維數組轉換成一維數組

    In [36]:arr2
    Out[36]: 
    array([[ 1,  2,  3,  4,  5,  6,  7,  8],
           [ 9, 10, 11, 12, 13, 14, 15, 16],
           [17, 18, 19, 20, 21, 22, 23, 24]])
    
    In [37]:arr1 = arr2.reshape(1, 24)[0]
    
    In [38]:arr1
    Out[38]: 
    array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24])

    四、訪問二維列表

    通過行標與列標來訪問二維列表(可以通過切片運算訪問行)

    1、訪問行

    In [36]:arr2
    Out[36]: 
    array([[ 1,  2,  3,  4,  5,  6,  7,  8],
           [ 9, 10, 11, 12, 13, 14, 15, 16],
           [17, 18, 19, 20, 21, 22, 23, 24]])
    
    In [39]:arr2[1]
    Out[39]: array([ 9, 10, 11, 12, 13, 14, 15, 16])

    2、訪問元素

    In [40]:arr2
    Out[40]: 
    array([[ 1,  2,  3,  4,  5,  6,  7,  8],
           [ 9, 10, 11, 12, 13, 14, 15, 16],
           [17, 18, 19, 20, 21, 22, 23, 24]])
    
    In [41]:arr2[1][2]  # 第2行第3列
    Out[41]: 11

    3、NumPy二維數組的訪問

    In [42]:import numpy as np
    
    In [43]:arr2
    Out[43]: 
    array([[ 1,  2,  3,  4,  5,  6,  7,  8],
           [ 9, 10, 11, 12, 13, 14, 15, 16],
           [17, 18, 19, 20, 21, 22, 23, 24]])
    
    In [44]:arr2[1]  # 訪問行
    Out[44]: array([ 9, 10, 11, 12, 13, 14, 15, 16])
    
    In [45]:arr2[:, 0]  # 訪問列
    Out[45]: array([ 1,  9, 17])
    
    In [46]:arr2[2, 3]  # 訪問元素
    Out[46]: 20

    補充:二維列表的實戰應用

    使用二維列表輸出不同版式的古詩《靜夜思》

    -- 橫版 --

    床前明月光

    疑是地上霜

    舉頭望明月

    低頭思故鄉

    -- 豎版 --

    低舉疑床

    頭頭是前

    思望地明

    故明上月

    鄉月霜光

    在線溫馨提醒:橫版是從左往右讀,豎版是從右往左讀的。

    我們在IDLE中新建一個文件,在該文件中,定義4個字符串為《靜夜思》的詩句,再定義一個二維列表,使用嵌套的for循環,將古詩以橫版輸出,再將二維列表進行逆序排列,最后使用嵌套的for循環,將古詩以豎版輸出,代碼如下:

    str1 = '床前明月光'
    str2 = '疑是地上霜'
    str3 = '舉頭望明月'
    str4 = '低頭思故鄉'
    verse = [list(str1), list(str2), list(str3), list(str4)]   # 定義一個二維列表
    print('\n-- 橫版 --\n')
    for i in range(4):                                         # 循環古詩的每一行
        for j in range(5):                                     # 循環每一行的每個字(列)
            if j == 4:                                         # 如果是一行中的最后一個字
                print(verse[i][j])                             # 換行輸出
            else:
                print(verse[i][j], end='')                     # 不換行輸出
     
    verse.reverse()                                            # 對列表進行逆序排列
    print('\n-- 豎版 --\n')
    for i in range(5):                                         # 循環每一行的每個字(列)
        for j in range(4):                                     # 循環新逆序排列后的第一行
            if j == 3:                                         # 如果是最后一行
                print(verse[j][i])                             # 換行輸出
            else:
                print(verse[j][i], end='')                     # 不換行輸出

    運行結果如下:

    -- 橫版 --
     
    床前明月光
    疑是地上霜
    舉頭望明月
    低頭思故鄉
     
    -- 豎版 --
     
    低舉疑床
    頭頭是前
    思望地明
    故明上月
    鄉月霜光
    >>> 

    讀到這里,這篇“Python二維列表創建、轉換及訪問的方法”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    汶上县| 怀柔区| 普宁市| 宜兰市| 石楼县| 科技| 石屏县| 荥经县| 泽库县| 桃园县| 禹城市| 莫力| 武汉市| 河北省| 定安县| 宜阳县| 山阴县| 新泰市| 茶陵县| 呼和浩特市| 墨江| 珲春市| 开江县| 镇坪县| 西城区| 凤城市| 青阳县| 武陟县| 额尔古纳市| 奉贤区| 垣曲县| 青海省| 昆明市| 六枝特区| 正阳县| 如皋市| 阳泉市| 邯郸县| 珠海市| 灵璧县| 读书|