【问题标题】:How to print a 2D list in one line?如何在一行中打印二维列表?
【发布时间】:2017-12-11 11:52:07
【问题描述】:

我正在尝试在单个输出行上打印一个二维数组(没有\n)。

我得到的最接近这个输出

[28098, 24390, 15876] [8352, 12876, 12644]

使用

print(*result)

我想删除逗号(用空格代替它们)并删除括号。

【问题讨论】:

  • print(str([[1, 2, 3], [3, 4, 5]]).replace(',', '')) 输出 [[1 2 3] [3 4 5]] 可能是也可能不是您要查找的内容。
  • 你的预期输出是8098, 24390, 15876, 8352, 12876, 12644吗?注意 15876 和 8352 之间的逗号。

标签: python multidimensional-array


【解决方案1】:

你可以用直截了当的方式来做

arr = [[1, 2, 3], [3, 4, 5]]
res = [item for sublist in arr for item in sublist] # flatten array
print(" ".join(map(str, res))) # convert all array elements to str and concatenate them
1 2 3 3 4 5

或者你可以使用itertools

import itertools
arr = [[1, 2, 3], [3, 4, 5]]
res = list(itertools.chain(*arr))
print(" ".join(map(str, res)))
1 2 3 3 4 5

【讨论】:

    【解决方案2】:
    lest=[[1,2,3],[4,5,6]]
    i=0
    while(i<len(lest)):
        interArrylength=len(lest[i])
        k=0
        while(k<interArrylength):
            print(lest[i][k],end=" ")
            k=k+1
        i=i+1
    

    【讨论】:

    • 感谢您提供此代码 sn-p,它可能会提供一些有限的即时帮助。一个正确的解释would greatly improve 它的长期价值通过展示为什么这是一个很好的解决问题的方法,并将使它对未来有其他类似问题的读者更有用。请edit您的回答添加一些解释,包括您所做的假设。
    【解决方案3】:
    list=[[1,2,3],[4,5,6],[7,8,9]]
    result = ""
    for sublist in list:
        for element in sublist:
               result += str(element)
    print(result)
    

    123456789

    【讨论】:

    • 这个问题已经有两个答案(已接受和另一个)。鉴于这两个答案,预期的输出应该在元素之间有一个空格,如1 2 3 ...。无论如何,最好也解释一下为什么这个解决方案比现有的答案更好;特别是因为这是一个已经回答的老问题。另请参阅How do I write a good answer?。
    【解决方案4】:

    试试这个

    import numpy as np
    
    a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
    nd_a = np.array(a)
    
    for arr in nd_a:
        for element in arr:
            print(element,end=" ")
            print(" ",end=" ")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多