我该如何在Python中打印列表时进行填充?
例如,我有以下列表:
mylist = ['foo', 'bar']
我希望将这个填充到四个索引,并用逗号隔开打印出来。我知道我可以采用以下方式将其作为逗号和空格分隔的列表:
', '.join(mylist)
但是我应该如何用 'x' 填充四个索引,以便输出如下:
foo, bar, x, x
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))
的结果为空列表,这是预期的。
使用itertools的另一个可能性:
import itertools as it
l = ['foo', 'bar']
', '.join(it.islice(it.chain(l, it.repeat('x')), 4))
itertools
中的 grouper()
配方:>>> L = ['foo', 'bar']
>>> ', '.join(next(izip_longest(*[iter(L)]*4, fillvalue='x')))
'foo, bar, x, x'
mylist
包含五个项目,您想要什么结果? - Ethan Furmanfoo, bar, baz, qux, wibble
。 - Matthieu Cartier