我在Python中有一个很长的清单,名为my_list
。我想按照以下两个条件来打印此列表的内容:
这是我想要的输出:
001 csfiohfewiehns
002 hdifhdigbdgib
003 fdifhihiwhgighigh
004 jfjodopfhaeohgheg
到目前为止,我已经尝试了以下代码:
print("\n".join.(my_list))
这有效,现在每个项目都出现在新行中。但是,我仍然不知道如何使用我想要的格式对行进行编号。我听说过函数enumerate
,尽管我不知道如何将其与我当前的代码行结合起来。
有什么想法吗?
答案 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))