如何用Python填充一个全为0的列表
我想从另一个列表中获取一个固定长度的列表,比如:
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))