【问题标题】:Printing 2 dimension list by row and column按行列打印二维列表
【发布时间】:2022-05-12 22:55:08
【问题描述】:

按行列打印二维列表mult_table。使用嵌套循环。给定程序的示例输出(每行之间没有间距):

1 | 2 | 3

2 | 4 | 6

3 | 6 | 9

这是我的代码:我尝试使用嵌套循环,但我的输出位于底部。它有额外的|最后

  for row in mult_table:
    for cell in row:
       print(cell,end=' | ' )
  print()

1 | 2 | 3 |

2 | 4 | 6 |

3 | 6 | 9 |

【问题讨论】:

  • "|".join( [str(cell) for cell in row ] )

标签: python-3.x


【解决方案1】:

试试

for row in mult_table:
    print(" | ".join([str(cell) for cell in row]))

join() 将给定的元素连接成一个字符串,使用" | " 作为分隔符。所以对于row 中的三个,它只使用两个分隔符。

【讨论】:

    【解决方案2】:

    试试这个:

        for x in mult_table:
            for x1 in x:
                if x1 == x[-1]:
                    print (x1)
                else:
                    print(x1 , end=' | ')
    

    【讨论】:

    • 虽然此代码可能会为 OP 提供他们正在寻找的答案,但最好添加上下文。解释您的解决方案为何有效,或在您的解决方案中需要注意什么。要成为“高质量”的答案,未来的访问者应该能够从您的帖子中学习,以便他们可以将其应用于自己的解决方案。例如,也许可以解释x[-1] 的作用,以及为什么这是解决方案的关键。具有良好解释的完整、高质量的答案更有可能获得投票,并保持高质量。
    【解决方案3】:

    试试这个:

    # To convert the input string into a two-dimensional list.
    # Ex: 1 2, 2 4 is converted to [ [1, 2], [2, 4] ]
    mult_table = [[int(num) for num in line.split()] for line in lines]
    
    for row in mult_table:
       i=0
       for num in row:
         if i<len(row)-1:
            print(row[i],end=' | ')
            i=i+1
         else:
            print(row[i])
    

    【讨论】:

      【解决方案4】:

      这是我得到的:

      user_input= input()
      lines = user_input.`enter code here`split(',')
      
      # This line uses a construct called a list comprehension, introduced elsewhere,
      # to convert the input string into a two-dimensional list.
      # Ex: 1 2, 2 4 is converted to [ [1, 2], [2, 4] ]
      
      mult_table = [[int(num) for num in line.split()] for line in lines]
      
      for row in mult_table:
          for cell in row:
              if cell == row[len(row) - 1]:
                  print(cell, end='')
              else:
                  print(cell, end=' | ')
          print()
      

      【讨论】:

        【解决方案5】:

        我知道我的回答有点长,但它有效。

        mult_table = [
            [1, 2, 3],
            [2, 4, 6],
            [3, 6, 9]
        ]
        
        ''' Your solution goes here '''
        if len(mult_table) <= 3:
            mult_table[0].insert(1, ' | ')
            mult_table[0].insert(3, ' | ')
            
            mult_table[1].insert(1, ' | ')
            mult_table[1].insert(3, ' | ')
        
            mult_table[2].insert(1, ' | ')
            mult_table[2].insert(3, ' | ')
            
        else:
            mult_table[0].insert(1, ' | ')
            mult_table[0].insert(3, ' | ')
            mult_table[0].insert(5, ' | ')
            
            mult_table[1].insert(1, ' | ')
            mult_table[1].insert(3, ' | ')
            mult_table[1].insert(5, ' | ')
        
            mult_table[2].insert(1, ' | ')
            mult_table[2].insert(3, ' | ')
            mult_table[2].insert(5, ' | ')
            
            mult_table[3].insert(1, ' | ')
            mult_table[3].insert(3, ' | ')
            mult_table[3].insert(5, ' | ')
            
        for x in mult_table:
            for y in x:
                print(y, end='')
            print()
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-10-24
          • 1970-01-01
          相关资源
          最近更新 更多