为什么-1 * List对象返回一个空列表?

时间:2019-08-19 17:52:16

标签: python-3.6

我正在尝试对List对象进行一些操作,并希望看到一些“广播”行为:

 x = [-1, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 x = -1*x

In [46]: x

Out[46]: []

我期待的是类似x = [1, -1, -2, -3, -4, -5, -6, -7, -8, -9]的东西。

实际上发生了什么?

2 个答案:

答案 0 :(得分:4)

只能将这种乘法与大熊猫Series(或者更好的底层numpy数组)一起使用。如果你写类似

List = n * List

使用n作为整数,列表将按n调整大小:

x = [-1, 1, 2, 3, 4, 5, 6, 7, 8, 9]
x = 3*x
print(x)

>> [-1, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, 1, 2, 3, 4, 5, 6, 7, 8, 9]

负数将删除您的列表条目(视为0-请参见here)。

  

小于n的{​​{1}}的值被视为0(产生一个空   与0相同类型的序列。

因此,您必须使用以下方法之一将每个列表元素相乘:

s

答案 1 :(得分:0)

您需要以下内容:

x = [-1 * i for i in x]