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

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

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

Smart猫小萌 2021-09-11 19:29:03
我有如下所示的列表: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  WB 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  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我试过类似的东西,但没有奏效: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  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 
查看完整描述

3 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

我猜你想要字符和数字右对齐。修改最后一个字符串格式

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

进入

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

n在这种情况下是2。


查看完整回答
反对 回复 2021-09-11
?
莫回无

TA贡献1865条经验 获得超7个赞

在 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


查看完整回答
反对 回复 2021-09-11
?
SMILET

TA贡献1796条经验 获得超4个赞

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


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


查看完整回答
反对 回复 2021-09-11
  • 3 回答
  • 0 关注
  • 178 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号