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

时间:2018-10-15 03:14:33

标签: python python-3.x

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

  • 每行一项。
  • 每个商品都需要使用三位数编号(例如001、002 ...)

这是我想要的输出:

001  csfiohfewiehns
002  hdifhdigbdgib
003  fdifhihiwhgighigh
004  jfjodopfhaeohgheg

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

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

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

有什么想法吗?

4 个答案:

答案 0 :(得分:2)

您可以使用enumerate来生成索引:

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

答案 1 :(得分:1)

同意blhsing,但是由于这种情况下列表理解的速度更快,因此请执行:

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

也让玛汀这样:

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)]))

或者按照Mateen的方式:

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

答案 2 :(得分:0)

您总是可以使用for循环,而不用创建新字符串:

my_list = ["abc", "def"]

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

这将输出:

000 abc
001 def

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

答案 3 :(得分:0)

这可能是最简单的方法:

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