将函数应用于可变长度的子集

apply function to a subset of a variable length

我有一个列表

list = Row[{#}] & /@ Range[100]

并且我想将函数 f 应用于以下元素:

sublist = Row[{5 #}] & /@ Range[20]

当我指定要转换的索引时很容易。例如,

MapAt[f, list, {{1}, {5}}] 

工作正常。一旦我创建一个新列表并将其用作 "Part":

h = Row[{5 #}] & /@ Range[20]; 
MapAt[f, list, h]

它失败了。我想问题的症结在于在两个数组中同时使用# - list 和 h,但我是 Mathematica 的新手,无法弄清楚。有什么方法可以处理任意长度的数组吗?

MapAt 需要一个普通列表,而不是包含在 Row 中的项目。如果您从 h 中省略 Row 它会起作用。请注意,您的函数 f 应用于 Row[{5}],而不仅仅是 {5}。您确定需要使用 Row 吗?