我们可以将列表乘以整数以扩展它:
In [1]: a = [1] * 10
In [2]: a
Out[2]: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
但是当我们按如下方式将列表乘以非正数时:
In [3]: a * -2
Out[3]: []
In [4]: "1" * -2
Out[4]: ''
结果为空列表。但是为什么呢?
n小于0的值将被视为0(产生与s类型相同的空序列)。请注意,序列s中的项目不会被复制;它们被多次引用。这常常困扰着新的Python程序员。考虑:
从docs:
[
s * n
或n * s
|等同于将s添加到自身n次n]的值小于
0
的情况被视为0
(这将产生一个空与s相同类型的序列。