【问题标题】:How can i make a 2D array with existing lists?如何使用现有列表制作二维数组?
【发布时间】:2023-03-27 19:27:01
【问题描述】:

例如,我有一个名为 'mazeline' 的 txt 数据,如下所示:

abcd
cdae
korp

所以我先列了 3 个列表:

mazeline = readmaze.split()
mline0 =  list(mazeline[0])
mline1 =  list(mazeline[1])
mline2 =  list(mazeline[2])

所以这 3 个列表是:

mline0 = [a,b,c,d]
mline1 = [c,d,a,e]
mline2 = [k,o,r,p]

我想制作一个像这样的二维数组:

[[a,b,c,d],[c,d,a,e],[k,o,r,p]]

或者有什么方法可以直接从第一个数据中创建一个二维数组?

有什么建议吗?任何帮助都会很好。

【问题讨论】:

    标签: python arrays list 2d


    【解决方案1】:

    只需将列表放在另一个列表中

    res = [mline0, mline1, mline2]
    

    更简单地说,您可以跳过中间变量并使用列表推导

    res = [list(mline) for mline in readmaze.split()]
    

    【讨论】:

    • 我认为这是我的错误,但结果的类型仍然是一个列表。我不能把它改成一个数组吗?
    • 在 python 中实际上不需要像“数组”这样的东西,我们只使用嵌套列表。 (如果你真的需要数组,numpy 有一些)
    • 谢谢,但我不想要 [['a','b','c','d'], ...., 'p']] 我想要 [[a, b,c,d],[c,d,a,e],[k,o,r,p]] 我该怎么办?
    • 文本文件的内容是字符串,所以输出是 [['a','b','c','d'], ...., 'p']] 到表示 'a', 'b', ... 是字符串。或许你真正想问的是,如何将嵌套数组/列表的内容转换成 int 等 Python 类型?
    • @H.Choi,抱歉,不确定您的意思。 a,b,c,d 必须是某种对象。如果它们不是字符串,它们应该是什么?如果您能描述一下您需要 this 的用途,也许会有所帮助。
    【解决方案2】:

    试试这个列表理解:

    [[int(i) for i in line.strip()] for line in open('file/path')]
    

    【讨论】:

      猜你喜欢
      • 2019-07-25
      • 2021-01-02
      • 1970-01-01
      • 2016-06-22
      • 2010-11-17
      • 2012-12-28
      • 2013-08-25
      • 2019-01-11
      • 2016-06-07
      相关资源
      最近更新 更多