千家信息网

Python二维列表创建、转换及访问的方法

发表于:2024-09-21 作者:千家信息网编辑
千家信息网最后更新 2024年09月21日,本文小编为大家详细介绍"Python二维列表创建、转换及访问的方法",内容详细,步骤清晰,细节处理妥当,希望这篇"Python二维列表创建、转换及访问的方法"文章能帮助大家解决疑惑,下面跟着小编的思路
千家信息网最后更新 2024年09月21日Python二维列表创建、转换及访问的方法

本文小编为大家详细介绍"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 npIn [32]:arr1 = np.arange(1,25)  # arange() 创建一个等差数组In [33]:arr2 = arr1.reshape(4, 6)  # reshape()一维转二维In [34]:arr2Out[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]:arr2Out[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]:arr2Out[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]:arr1Out[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]:arr2Out[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]:arr2Out[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 npIn [43]:arr2Out[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二维列表创建、转换及访问的方法"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

    二维 输出 数组 一维 一行 循环 结果 元素 古诗 方法 举头 故乡 文章 明月 月光 逆序 前明 生成 内容 床头 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 学计算机网络技术后悔 超精密网络技术 获奖网络安全小报 小学生网络安全法律知识观后感 哪些服务器主板能装e3v3 加强居民对网络安全的意识 服务器的智能监控管理结束 电脑网络接入服务器 虹口区国际网络技术服务售后服务 班级网络安全教育简报道客巴巴 大庆市网络安全工作管理平台 衡阳软件开发哪家好 2005的怎样附加数据库 数据库连接6 长沙盛天网络技术有限公司 湖南惠普服务器续保费用 前端ajax 访问数据库 怎么防止数据库注入攻击 数据库开发人员有多少人 武汉国家网络安全中心招聘 幼儿园网络安全组织和开展 小学生网络安全法律知识观后感 阳江 软件开发 lol国服怎么看自己的服务器 梦幻各等级服务器人数 图书管理系统和分布式数据库 我的世界怎么开1.12服务器 深圳教育网络技术有限公司 杀毒下载软件开发 杭州市网络安全运营服务平台
    0