如何用Python填充一个全为0的列表

62 投票
10 回答
129791 浏览
提问于 2025-04-16 17:06

我想从另一个列表中获取一个固定长度的列表,比如:

a = ['a','b','c']
b = [0,0,0,0,0,0,0,0,0,0]

我想得到这样的一个列表:['a','b','c',0,0,0,0,0,0,0]。换句话说,如果len(a) < len(b),我想用列表b中的值填充列表a,直到它的长度和列表b一样,稍微有点像str.ljust的功能。

这是我的代码:

a=['a','b','c']
b = [0 for i in range(5)]
b = [a[i] for i in b if a[i] else i]

print a

但是它显示了错误:

  File "c.py", line 7
    b = [a[i] for i in b if a[i] else i]
                                    ^
SyntaxError: invalid syntax

我该怎么办?

10 个回答

9

为什么不直接这样做呢?

c = (a + b)[:len(b)]
30

可以使用itertools库中的repeat函数。

>>> from itertools import repeat
>>> a + list(repeat(0, 6))
['a', 'b', 'c', 0, 0, 0, 0, 0, 0]
121

为什么不直接这样做呢:

a = a + [0]*(maxLen - len(a))

撰写回答