在Python中填充列表

6 投票
3 回答
1848 浏览
提问于 2025-04-17 04:01

我该如何在Python中打印一个带填充的列表呢?

比如,我有这样一个列表:

mylist = ['foo', 'bar']

我想把它打印成四个元素,并且用逗号分隔。我知道可以这样做,让它变成一个用逗号和空格分开的列表:

', '.join(mylist)

但是我该如何把它填充到四个元素,用'x'来填充,这样输出就像:

foo, bar, x, x

3 个回答

0

这个内容是基于来自itertoolsgrouper()的一个做法。

>>> 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)) 会得到一个空列表,这也是预期的结果。

撰写回答