随机选择列表中的一个元素,并在下一轮中删除所选的元素大家好,
我有一个列表[1,2,3,4,5,6,7,8,9,10],我想随机选择一个元素,然后从列表中删除该元素以进行下一个随机选择。 我需要重复选择四次。
有没有一种简单的方法可以删除列表中选定的元素? “Remove”和“Remove From”都需要元素的第 i 个索引。
感谢您的帮助。
自动化和脚本编写回复:随机选择列表中的一个元素,并在下一轮中删除所选的元素一个编辑版本@杰夫·珀金森版本,它使用“Remove From”返回值(它以列表形式返回已删除元素的值)。 此代码可能不太容易阅读,但有时使用 Remove From 的返回值很有用:
Names Default To Here(1);
theList = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j"};
While(N Items(theList) > 1,
// returns list of removed elements, we remove one value, so get first index
r_val = Remove From(theList, Random Integer(N Items(theList)))[1];
Print(Eval Insert("The chosen item was ^r_val^."));
);
Print("The chosen item is " || theList[1] || ".");回复:随机选择列表中的一个元素,并在下一轮中删除所选的元素您还可以使用 Random Shuffle 来随机化列表(矩阵),然后循环随机列表(矩阵)四次或选择前四个元素
Names Default To Here(1);
m = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
m_rand = Random Shuffle(m);
Show(m, m_rand);
回复:随机选择列表中的一个元素,并在下一轮中删除所选的元素像这样的东西会起作用吗?
theList = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j"};
while(nitems(theList) > 1,
r=random integer(nitems(theList));
print("The chosen item was " || theList[r] || ". Element number " || char(r) || ".");
remove from(theList, r);
);
print("The chosen item is " || theList[1] || ".");