如果我有两个列表,如何将一个列表的第 n 个元素与另一个数组的第 n 个元素相关联?如何将其中一个列表的第 n 个元素关联到另一个列表的第 n 个元素? 我正在研究关联数组,但不确定如何实际循环遍历它们并将每个键与值相关联。 (请注意,我的密钥将在一个列表中,数据在另一个列表中)。
脚本回复:如果我有两个列表,如何将一个列表的第 n 个元素与另一个数组的第 n 个元素相关联?不,你不能,它们作为键值对工作。我认为您需要维护多个数组,其中还有您需要跟踪的其他值。我通常以数组集合结束:arrName、arrLSL、arrUSL 等。虽然列表元素可以是任何元素,但作为示例,根据规范我将有这样的安排:
specs = arrSpecs[parameter];
lsl = specs["lsl"];
usl = specs["usl"];
即 arrSpecs 是一个包含基于参数名称的键的数组;但值是另一个数组,键为“lsl”和“usl”。
回复:如果我有两个列表,如何将一个列表的第 n 个元素与另一个数组的第 n 个元素相关联?嗨大卫,
你能为三个参数使用关联数组吗? 我试过了,它适用于两个,但第三个参数最后只是创建了自己的列表。 如何将它与每个关联元素相关联?
回复:如果我有两个列表,如何将一个列表的第 n 个元素与另一个数组的第 n 个元素相关联?这有很大帮助,谢谢!
回复:如果我有两个列表,如何将一个列表的第 n 个元素与另一个数组的第 n 个元素相关联?如果您纯粹从列表的角度考虑,那么索引会将它们关联起来,即如果您想要两个列表的第 i 个元素,那么:
value1 = lst1[i];
value2 = lst2[i];
如果你想用关联数组来思考,那么这两个列表可以用来创建一个数组
arr = AssociativeArray(lst1,lst2);
然后大概您想使用一个列表中的值来引用另一个列表,例如
key = lst1[i];
value = arr[key];
然后迭代,像这样:
keys = arr << get keys;
for (i=1,i<=nitems(keys),i++,
key = keys[i];
value = arr[key];
show(key,value);
);
例如:
dt = open("$SAMPLE_DATA/Big Class.jmp");
lst1 = dt:name << get values;
lst2 = dt:age << get values;
arr = AssociativeArray(lst1,lst2);
keys = arr << get keys;
for (i=1,i<=nitems(keys),i++,
key = keys[i];
value = arr[key];
show(key,value);
);回复:如果我有两个列表,如何将一个列表的第 n 个元素与另一个数组的第 n 个元素相关联?我认为你走在正确的轨道上;关联数组会起作用。下面的例子有帮助吗?
Names Default To Here( 1 );
list1={"A","B","C","D"};
list2={5,6,7,8};
aa = Associative Array( list1, list2 );
Show(aa[list1[2]]);