为什么将列表与非正整数相乘会导致Python中的列表为空?

问题描述 投票:0回答:2

我们可以将列表乘以整数以扩展它:

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]: ''

结果为空列表。但是为什么呢?

python python-3.x list python-2.x
2个回答
0
投票

Per the docs

n小于0的值将被视为0(产生与s类型相同的空序列)。请注意,序列s中的项目不会被复制;它们被多次引用。这常常困扰着新的Python程序员。考虑:


0
投票

docs

[s * nn * s |等同于将s添加到自身n

n]的值小于0的情况被视为0(这将产生一个空与s相同类型的序列。

© www.soinside.com 2019 - 2024. All rights reserved.