遍历数组并使用增加的值构建新的数组

时间:2018-07-12 12:33:10

标签: ruby

这段代码有什么区别:

df.groupby(['Parameter', 'FortNight']).apply(
        lambda r: r[['Customer', 'Amount']].to_dict(orient='records')
    ).unstack('Parameter').apply(lambda s: [
        {s.index.name: idx, 'Details': value}
        for idx, value in s.items()]
    ).to_json(orient='records')

和此代码?

p arr = [1, 2, 3, 4, 5]
p arr.map! { |a| a + 2 }

它们都得到相同的答案。它们只是实现同一解决方案的两种不同方法,还是流程或应用程序有所不同?

1 个答案:

答案 0 :(得分:0)

#map函数“为self的每个元素调用给定的块一次,用该块返回的值替换该元素”。

在第二个示例中,#each方法通过添加+ 2来修改数组的每个元素,并返回修改后的数组。第二个示例基于创建一个新数组,并用第一个数组中的修改值填充它。

处理过程几乎相同,主要区别在于,在第一个示例中,您将永久性地修改数组,而在第二个示例中,您将使第一个数组保持不变,并使用修改后的值创建一个新数组。