【问题标题】:Print multidimensional list in python3在python3中打印多维列表
【发布时间】:2014-11-03 06:45:34
【问题描述】:

我正在寻找一种以特定方式打印多维列表的方法。 这就是我的列表充满 int 的样子。

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

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

我想在列表中的两个“大”元素之间用空格和逗号打印每个元素。因此,对于我的示例,输出将是:

1 2 3, 4 5 6

1 2 3 4 5 6

我使用 python 3.4.2

【问题讨论】:

    标签: list python-3.x printing multidimensional-array


    【解决方案1】:
    In [78]: L = [[1,2,3],[4,5,6]]
    
    In [79]: ', '.join([' '.join([str(i) for i in subl]) for subl in L])
    Out[79]: '1 2 3, 4 5 6'
    
    In [80]: L = [[1,2,3,4,5,6]]
    
    In [81]: ', '.join([' '.join([str(i) for i in subl]) for subl in L])
    Out[81]: '1 2 3 4 5 6'
    

    【讨论】:

      【解决方案2】:

      使用'sep'.join(...) 可以很容易地连接字符串,sep 是分隔符。在加入数组一部分的数字之前,您需要将它们转换为字符串。这可以使用map 函数轻松完成。对于i 中的每个元素,它应用str 函数。将各部分的编号用空格隔开后,就可以将各部分加入到最终结果中。

      l = [[1,2,3],[4,5,6]]
      print ', '.join([' '.join(map(str, i)) for i in l])
      

      输出:

      1 2 3, 4 5 6
      

      注意:在 Python 3 中,您需要使用括号调用 printprint(...)

      【讨论】:

        【解决方案3】:
        >>> l = [[1, 2, 3], [4, 5, 6]]
        >>> ', '.join(map(lambda x: ' '.join(map(str, x)), l))
        '1 2 3, 4 5 6'
        >>> l = [[1, 2, 3, 4, 5, 6]]
        >>> ', '.join(map(lambda x: ' '.join(map(str, x)), l))
        '1 2 3 4 5 6'
        

        【讨论】:

          【解决方案4】:
          ls = [[1, 2, 3, 4], [5, 6, 7, 8]]
          
          for n in range(0, len(ls)):
              for m in range(0, len(ls[n])):
                  print(str(ls[n][m]) + ' ', end='')
              if n < (len(ls)-1):
                  print(', ', end='')
              else:
                  print('')
          

          【讨论】:

          • 虽然此代码可能会回答问题,但提供有关它如何和/或为什么解决问题的额外上下文将提高​​答案的长期价值。请阅读此how-to-answer 以提供高质量的答案。
          猜你喜欢
          • 2014-09-03
          • 2020-09-26
          • 2014-06-13
          • 2022-12-18
          • 2020-04-02
          • 1970-01-01
          • 2016-10-04
          • 2010-09-06
          相关资源
          最近更新 更多