在Python中每行打印一个编号列表

问题描述 投票:-1回答:4

我在Python中有一个名为my_list的很长的列表。我想按照以下两个条件打印此列表的内容:

  • 每行一件。
  • 每个项目需要使用三位数字编号(例如,001,002 ......)

这是我想要的输出:

001  csfiohfewiehns
002  hdifhdigbdgib
003  fdifhihiwhgighigh
004  jfjodopfhaeohgheg

到目前为止,我已经尝试了以下代码:

print("\n".join.(my_list))

这有效,现在每个项目都出现在一个新行中。但是,我仍然不知道如何使用我想要的格式对行进行编号。我听说过函数enumerate,虽然我不知道如何将它与我当前的代码行结合起来。

有任何想法吗?

python python-3.x
4个回答
2
投票

您可以使用enumerate生成索引:

print("\n".join('%03d %s' % (i, s) for i, s in enumerate(my_list, 1)))

1
投票

同意blhsing,但因为这个案例列表理解更快,所以:

print("\n".join(['%03d %s' % (i, s) for i, s in enumerate(my_list, 1)]))

还得到了Mateen的方式:

print('\n'.join([f'{i + 1:03}  {x}' for i, x in enumerate(xs)]))

或者zfill作为bhlsing的方式:

print('\n'.join(['  '.join((str(i).zfill(3),v)) for i,v in enumerate(a,1)]))

或者作为马滕的方式:

print('\n'.join(['  '.join((str(i+1).zfill(3),v)) for i,v in enumerate(a)]))

0
投票

这可能是最简单的方法:

'\n'.join(f'{i + 1:03}  {x}' for i, x in enumerate(xs))

0
投票

你总是可以使用for循环而不是创建一个新字符串:

my_list = ["abc", "def"]

for i, item in enumerate(my_list):
    print(f'{i:03} {item}')

这将输出:

000 abc
001 def

如果你不理解上面的一些代码,请发表评论,我会澄清。

© www.soinside.com 2019 - 2024. All rights reserved.