【问题标题】:Replacing elements of a list that depend on elements of other lists替换依赖于其他列表元素的列表元素
【发布时间】:2017-11-06 07:10:08
【问题描述】:

我有两个列表:

data1 = {0, 1, 1, 0, 0}

data2 = {1, 2, 3, 4, 5}

我想根据data1的值替换data2中的元素。

例如,如果data1=0,我希望data2替换为0,否则我希望data2保持原样。

我正在寻找的输出是:

data2 = {1, 0, 0, 4, 5};

【问题讨论】:

    标签: string replace wolfram-mathematica list-manipulation


    【解决方案1】:

    对于需要的输出,如果data1 = 0,data2不替换为0。

    data1 = {0, 1, 1, 0, 0};
    data2 = {1, 2, 3, 4, 5};
    
    data2 = MapThread[If[#1 == 0, #2, 0] &, {data1, data2}]
    

    {1, 0, 0, 4, 5}

    还有

    data2 = UnitStep[-Abs@data1]*data2
    

    {1, 0, 0, 4, 5}

    【讨论】:

      【解决方案2】:

      另一种方式..

      ReplacePart[data2, Position[data1, 0] -> 0]
      

      {0, 2, 3, 0, 0}

      请注意您的示例输出与您的问题文本不一致。

      【讨论】:

        猜你喜欢
        • 2020-03-29
        • 2023-02-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多