Python中的填充列表

时间:2011-10-10 14:30:49

标签: python list padding

如何在python中打印时填充列表?

例如,我有以下列表:

mylist = ['foo', 'bar']

我想用逗号将这个填充打印到四个索引。我知道我可以执行以下操作将其作为逗号和空格分隔列表:

', '.join(mylist)

但是如何用'x'将它填充到四个索引,所以输出如下:

foo, bar, x, x

3 个答案:

答案 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)

基于itertoolsgrouper()食谱:

>>> L = ['foo', 'bar']
>>> ', '.join(next(izip_longest(*[iter(L)]*4, fillvalue='x')))
'foo, bar, x, x'

它可能属于“不要在家尝试”类别。