我试图理解如何在Python中的数组上使用布尔掩码。在下面的示例中,Python函数成功触及color_select数组的所有元素。它是如何做到的,因为代码看起来只是索引color_select的第0个或第1个元素?
var arrayOfObjects = [{
key_a: "value1",
key_b: "value2"
},
{
key_c: "value12",
key_d: "value23"
}
];
var objToCompare = {
key_a: "value1",
key_b: "value2"
};
// credits https://stackoverflow.com/a/6713782/2308005
function objectEquals(x, y) {
if (x === y) return true;
if (!(x instanceof Object) || !(y instanceof Object)) return false;
if (x.constructor !== y.constructor) return false;
for (var p in x) {
if (!x.hasOwnProperty(p)) continue;
if (!y.hasOwnProperty(p)) return false;
if (x[p] === y[p]) continue;
if (typeof(x[p]) !== "object") return false;
if (!Object.equals(x[p], y[p])) return false;
}
for (p in y) {
if (y.hasOwnProperty(p) && !x.hasOwnProperty(p)) return false;
}
return true;
}
var result = arrayOfObjects.filter(function(item) {
return !objectEquals(item, objToCompare);
});
console.log(result);
答案 0 :(得分:1)
在python中,responseHandler : SignUpTaskResponseHandler
字符指定要在可迭代内索引的范围。如果没有给出参数(例如:
),则python将其读作“对整个列表进行操作”。
在您的代码中,似乎list[:]
是一个三维数组。例如,img
表示“在Z的第一个级别中获取所有X和Y,并检查它是否大于集合img[:,:,0] > thresh[0]
的第一个元素”。如果thresh
只有3个“z-layers”,则此代码会触及所有3个图层的所有元素。