You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何迭代数组并在每次迭代中修改元素?(指定索引置1示例)

实现数组迭代并按需求修改元素的几种方法

嘿,这个需求其实挺清晰的——就是要遍历数组的每个索引,每次只把当前索引的元素设为1,其他全置0对吧?我来给你分享几种实用的实现方式,不管你用Python还是JavaScript都能直接用:

方法1:Python 生成新数组(简单直观)

如果不需要复用原数组,每次生成新数组是最省心的方式,代码一眼就能看懂:

def iterate_array(n):
    for i in range(n):
        # 先搞一个全0的数组,再把第i个位置改成1
        arr = [0] * n
        arr[i] = 1
        print(arr)

# 测试一下长度为4的情况
iterate_array(4)

运行后就会输出你要的序列:

[1, 0, 0, 0]
[0, 1, 0, 0]
[0, 0, 1, 0]
[0, 0, 0, 1]

方法2:Python 原地修改(节省内存)

要是数组长度特别大,不想频繁创建新数组,那就复用同一个数组,每次先把所有元素重置为0,再改目标位置:

def iterate_array_in_place(n):
    arr = [0] * n
    for i in range(n):
        # 先把所有元素变回0
        for j in range(n):
            arr[j] = 0
        # 再把当前索引设为1
        arr[i] = 1
        print(arr)

iterate_array_in_place(4)

这种方式内存开销更小,适合处理大数据量的场景。

方法3:JavaScript 实现(两种思路)

生成新数组版本

function iterateArray(n) {
    for (let i = 0; i < n; i++) {
        // 用fill快速创建全0数组,再修改对应索引
        const arr = Array(n).fill(0);
        arr[i] = 1;
        console.log(arr);
    }
}

// 测试
iterateArray(4);

原地修改版本

function iterateArrayInPlace(n) {
    const arr = Array(n).fill(0);
    for (let i = 0; i < n; i++) {
        // 一行代码重置所有元素为0
        arr.fill(0);
        // 设置当前索引为1
        arr[i] = 1;
        console.log(arr);
    }
}

iterateArrayInPlace(4);

小提示

  • 如果你的需求不是打印,而是要把这些数组收集起来返回,只需要把print/console.log换成把数组加到一个列表里就行。
  • 其他语言比如Java、C++的思路也完全一样:要么每次新建数组赋值,要么复用数组先重置再修改目标位置。

内容的提问来源于stack exchange,提问作者Luis Garcia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:30:52