Python中如何一次性为数组的多个索引位置设置相同值?
数组批量替换指定索引值的实现方案
Python 实现
方案1:原生列表实现(无第三方依赖,无显式for循环)
直接对指定索引位批量赋值即可,完全不需要用到循环逻辑:
a = [1,2,3,4,5,6,7] a[1], a[4], a[5] = 10, 10, 10 print(a) # 输出结果:[1, 10, 3, 4, 10, 10, 7]
方案2:使用numpy实现(适合索引数量多的场景)
如果需要替换的索引数量很多,逐个赋值太繁琐,可以用numpy数组的多索引批量赋值特性,全程不需要写for循环:
import numpy as np a = [1,2,3,4,5,6,7] replace_indexes = [1,4,5] # 转为numpy数组后批量赋值 np_a = np.array(a) np_a[replace_indexes] = 10 # 转回原生列表(如果需要) a = np_a.tolist() print(a) # 输出结果:[1, 10, 3, 4, 10, 10, 7]
JavaScript 实现
如果是JS环境,同样可以用两种方式实现:
- 索引数少的场景直接逐个赋值,无任何循环:
let a = [1,2,3,4,5,6,7]; a[1] = 10; a[4] = 10; a[5] = 10; console.log(a); // 输出结果:[1, 10, 3, 4, 10, 10, 7]
- 索引数多的场景可以用
forEach,不属于手写for循环的范畴:
let a = [1,2,3,4,5,6,7]; const replaceIndexes = [1,4,5]; replaceIndexes.forEach(idx => a[idx] = 10); console.log(a); // 输出结果:[1, 10, 3, 4, 10, 10, 7]
内容的提问来源于stack exchange,提问作者Asma01
相关产品推荐
相关产品推荐

