在Python中填充列表
我该如何在Python中打印一个带填充的列表呢?
比如,我有这样一个列表:
mylist = ['foo', 'bar']
我想把它打印成四个元素,并且用逗号分隔。我知道可以这样做,让它变成一个用逗号和空格分开的列表:
', '.join(mylist)
但是我该如何把它填充到四个元素,用'x'来填充,这样输出就像:
foo, bar, x, x
3 个回答
0
这个内容是基于来自itertools
的grouper()
的一个做法。
>>> L = ['foo', 'bar']
>>> ', '.join(next(izip_longest(*[iter(L)]*4, fillvalue='x')))
'foo, bar, x, x'
这可能属于“别在家里尝试”的那种事情。
3
还有一种可能的方法是使用itertools这个库:
import itertools as it
l = ['foo', 'bar']
', '.join(it.islice(it.chain(l, it.repeat('x')), 4))
11
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))
会得到一个空列表,这也是预期的结果。