如何在python中打印时填充列表?
例如,我有以下列表:
mylist = ['foo', 'bar']
我想用逗号将这个填充打印到四个索引。我知道我可以执行以下操作将其作为逗号和空格分隔列表:
', '.join(mylist)
但是如何用'x'将它填充到四个索引,所以输出如下:
foo, bar, x, x
答案 0 :(得分:10)
In [1]: l = ['foo', 'bar']
In [2]: ', '.join(l + ['x'] * (4 - len(l)))
Out[2]: 'foo, bar, x, x'
['x'] * (4 - len(l))
生成一个列表,其中包含填充所需的正确'x'
条目数。
编辑关于len(l) > 4
会发生什么事情的问题。在这种情况下['x'] * (4 - len(l))
results in an empty list,正如所料。
答案 1 :(得分:2)
使用itertools的另一种可能性:
import itertools as it
l = ['foo', 'bar']
', '.join(it.islice(it.chain(l, it.repeat('x')), 4))
答案 2 :(得分:0)
基于itertools
的grouper()
食谱:
>>> L = ['foo', 'bar']
>>> ', '.join(next(izip_longest(*[iter(L)]*4, fillvalue='x')))
'foo, bar, x, x'
它可能属于“不要在家尝试”类别。