如何在我的代码中添加一个显示列数的新行

我有如下所示的列表:


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

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


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 


Smart猫小萌
浏览 179回答 3
3回答

紫衣仙女

我猜你想要字符和数字右对齐。修改最后一个字符串格式print('{}'.format(..))进入print(' { :>n}'.format(..))凡n在这种情况下是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

SMILET

我使用字符串格式解决了这个问题: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  WB N  W  W  W  N  N  N  N  N  N  N  N  0  1  2  3  4  5  6  7  8  9 10 11
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python