为了账号安全,请及时绑定邮箱和手机立即绑定

右对齐网格行

右对齐网格行

天涯尽头无女友 2021-08-17 15:45:29
我正在尝试制作一个程序,该程序将接收行列表并以网格的形式将它们打印出来。我已经成功地将行列表转换为网格格式,但我目前无法以特定方式对齐行。我想出了一个算法,但我不确定这是否是一种 pythonic 方式。grid = [[21, 21, 21, 21, 21], [21, 42, 63, 84, 105], [21, 63, 126, 210, 315], [21, 84, 210, 420, 735], [21, 105, 315, 735, 1470]]# grid[-1][-1]always the largest number in grid# p is the number of digits of the largest numberp = len(str(grid[-1][-1]))manipulated_grid = '\n'.join(' '.join(map(str, x)) for x in grid)print(manipulated_grid)# current output21 21 21 21 2121 42 63 84 10521 63 126 210 31521 84 210 420 73521 105 315 735 1470  第一个目标是将第一行中的元素隔开。我打算给(p - 1) * ' ' for the spacing between the elements in the first row.例如,由于最大的数字是 1470,它的数字是 4,我希望第一行的元素之间有 3 个空格。我尝试使用正则表达式模块,但我的努力失败了。我该如何接近?# current output21 21 21 21 2121 42 63 84 10521 63 126 210 31521 84 210 420 73521 105 315 735 1470# 1st objective   21   21   21   21   2121 42 63 84 10521 63 126 210 31521 84 210 420 73521 105 315 735 1470  第一行排成一行,现在我的第二个目标是将其他行中的所有元素与第一行对齐。# desired output   21   21   21   21   21   21   42   63   84  105   21   63  126  210  315   21   84  210  420  735   21  105  315  735 1470  我也一直在尝试使用 rjust() 函数,但我不知道如何将该函数应用于我的案例。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 131 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信