修改其索引由没有 for 循环的列表定义的列表元素

Modify list elements whose indices are defined by a list without a for loop

我想修改索引由列表定义的列表元素(例如,将它们设为 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

有没有更有效的方法来做到这一点?有没有办法向量化这个问题?我还可以从列表中保留不同的元素类型。

“暴力破解”没有错,清晰可读。 有一些方法可以做到这一点,例如可能更快的 numpy 数组。但是你真的需要更快的速度吗?