【发布时间】:2021-12-01 20:34:18
【问题描述】:
我想修改索引由列表定义的列表元素(例如,将它们设为 1)。 一个(错误的)想法可能是:
my_list = [1,2,3,11,22,4]
my_index = [1,3,4]
[my_list[i] = 1 for i in my_index]
总是有蛮力强迫:
for i in my_index:
my_list[i] = 1
有没有更有效的方法来做到这一点?有没有办法矢量化这个问题?我还可以从列表中保留不同的元素类型。
【问题讨论】:
-
您想要使用 python
lists的矢量化解决方案? -
不使用纯 python,如果您迫切需要矢量化,numpy 包支持这一点。否则,像您已经在做的那样迭代索引可能会更好。
-
Python 列表推导不会向量化任何东西,它们在性能方面几乎等同于相应的常规 for 循环。
标签: python list for-loop list-comprehension vectorization