我正在尝试对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]
的东西。
实际上发生了什么?
答案 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]