【问题标题】:How can I add a new row which shows the number of columns into my code如何在我的代码中添加一个显示列数的新行
【发布时间】:2018-12-09 23:27:15
【问题描述】:

我有如下列表:

l1=['N  N  N  N  M  M  M  W  W  N  W  W','N  W  W  W  N  N  N  N  N  N  N  N']
l2=['A','B','C','D','E','F']

这是我的代码:

for i in range(len(l1)):
    print(l2[i],l1[i])

我的输出是:

A N  N  N  N  M  M  M  W  W  N  W  W
B N  W  W  W  N  N  N  N  N  N  N  N

我想要这样的输出(不使用 3rd 方库):

A N  N  N  N  M  M  M  W  W  N  W  W
B N  W  W  W  N  N  N  N  N  N  N  N
  0  1  2  3  4  5  6  7  8  9 10 11

我尝试过类似的方法,但没有成功:

l3=[j for j in l1[0] if j!=' ']
print("  ",end='')
for k in range(len(l3)):
    print("{}  ".format(k),end='')

输出是这样的:

A N  N  N  N  M  M  M  W  W  N  W  W
B N  W  W  W  N  N  N  N  N  N  N  N
  0  1  2  3  4  5  6  7  8  9  10  11 

【问题讨论】:

  • 据我所知,您唯一的问题是数字前的尾随空格,当它们有 2 位时,对吗?
  • stackoverflow.com/questions/8450472/… - 在格式化方面看看。
  • 是的,你是对的。
  • 如果是这种情况,只需根据您的索引j 的字符数来决定您的print 将添加的spaces 的数量,因此如果您的号码减少1 个空格有数字:print(" " * (3 - len(j) )) 应该可以解决问题

标签: python string python-3.x string-formatting


【解决方案1】:

我猜你希望字符和数字右对齐。 修改最后的字符串格式

print('{}'.format(..))

进入

print(' { :>n}'.format(..))

在这种情况下,n 是 2。

答案基于 Python: Format output string, right alignment

【讨论】:

    【解决方案2】:

    在 Python 3.6+ 中,您可以使用格式化的字符串文字 (PEP489):

    l1 = ['N  N  N  N  M  M  M  W  W  N  W  W', 'N  W  W  W  N  N  N  N  N  N  N  N']
    l2 = ['A','B','C','D','E','F']
    
    for i, j in zip(l2, l1,):
        print(f'{i:>3}', end='')
        j_split = j.split()
        for val in j_split:
            print(f'{val:>3}', end='')
        print('\n', end='')
    
    print(f'{"":>3}', end='')
    for idx in range(len(j_split)):
        print(f'{idx:>3}', end='')
    

    结果:

      A  N  N  N  N  M  M  M  W  W  N  W  W
      B  N  W  W  W  N  N  N  N  N  N  N  N
         0  1  2  3  4  5  6  7  8  9 10 11
    

    【讨论】:

      【解决方案3】:

      我使用字符串格式解决了这个问题:

      l3=[j for j in l1[0] if j!=' ']
      for k in range(len(l3)):
          print('%3s'%" {}".format(k),end='')
      

      输出是:

      A N  N  N  N  M  M  M  W  W  N  W  W
      B N  W  W  W  N  N  N  N  N  N  N  N
        0  1  2  3  4  5  6  7  8  9 10 11
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-10-01
        • 2016-05-26
        • 1970-01-01
        • 1970-01-01
        • 2011-04-18
        • 2019-10-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多