gpt4 book ai didi

list-comprehension - 如何在 Chapel 中执行内联 IF 数组构造函数?

转载 作者:行者123 更新时间:2023-12-01 01:48:25 26 4
gpt4 key购买 nike

我想根据条件创建域的子集。我可以做一个循环,但我想看看是否可以使用内联 if。

只需重新创建阵列 d好像

var d = {1..8};
var e = [0.875, 0.625, 0.625, 1.0, 0.625, 0.875, 0.625, 0.625];
var p = 0.7;

var vs = for i in d do i;
writeln(" vs: ", vs);

但是,我想提取 d哪里 e[d] < p进入 vs .有没有类似的方法?
vs = [i in d where e[i] < p]
writeln(vs); // {2,3,5,7,8}

最佳答案

这应该会给你想要的结果:

var vs = for i in d do
if e[i] < p then i;

请注意 vs是一个数组而不是一个域。如果您想要一个可以使用的域,则应该使用关联域:
var vs : domain(int) = for i in d do
if e[i] < p then i;

这个例子会变成这样:
var vs : domain(int);
for i in d {
if e[i] < p then
vs.add(i);
}

关于list-comprehension - 如何在 Chapel 中执行内联 IF 数组构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46708593/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com