我正在尝试根据其他数组的值更改数组的值。特别是这些是我正在使用的数组:
Game.query.join(Category).filter(Category.id.in_([1, 2, 3]))
我想检查数组idx1,在什么地方是对的,我想在特定位置为数组inpoly分配相反的值,否则,只保留inpoly已经拥有的值。
我的期望是拥有这个数组:
val inpoly: Array[Boolean]=Array(false, true, true, false)
val idx1: Array[Boolean]=Array(true, false, false, false)
由于idx1的第一个值为true,因此更改inpoly的第一个值。 idx1的所有其他值都为false,因此保持原样不变
我尝试使用以下代码:
final_vector= true, true, true, false
但是我遇到以下错误:
idx1.map({
case true => !inpoly
case false => inpoly}
)
有人可以帮忙吗?
答案 0 :(得分:2)
您正在对两个集合进行逐元素比较。最好的方法是将它们zip
在一起,然后map
两个值给出答案:
inpoly.zip(idx1).map{ case (poly, idx) => poly ^ idx }
在这种情况下,这两个值是异或的,但显然您可以使用这两个值的任意组合来生成结果。