例如,如果你有n个相同长度的bool列表,那么elementwise boolean AND应该返回另一个列表,该列表的长度在所有输入列表都为True的位置为True,其他地方为False.
它很容易编写,我只是希望使用内置(如果存在)(为了标准化/可读性).
这是元素AND的实现:
def eAnd(*args):
return [all(tuple) for tuple in zip(*args)]
Run Code Online (Sandbox Code Playgroud)
示例用法:
>>> eAnd([True, False, True, False, True], [True, True, False, False, True], [True, True, False, False, True])
[True, False, False, False, True]
Run Code Online (Sandbox Code Playgroud) python list built-in boolean-operations elementwise-operations
在IF条件下避免使用NOT运算符以使代码更易读,这是一个很好的做法吗?我听说if (doSomething())那时比较好if (!doSomething()).
可能重复:
为什么大多数编程语言只有二进制相等比较运算符?
自从我开始学习编程语言以来,我有一个很长时间的简单问题.
我想写"如果x是1或2 => TRUE(否则为FALSE)."
但是当我用编程语言编写它时,比如C,
( x == 1 || x == 2 )
Run Code Online (Sandbox Code Playgroud)
它确实有效,但看起来很尴尬,难以阅读.我想应该可以简化这样的操作,所以如果您有任何想法,请告诉我.谢谢,内森
我不明白这条线的含义:
parameter and (" " + parameter) or ""
Run Code Online (Sandbox Code Playgroud)
其中parameter是string
为什么人们想要使用and和or运算符,一般来说,使用python字符串?
在pandas中,我想创建一个计算列,它是另外两列的布尔运算.
在pandas中,很容易将两个数字列相加.我想用逻辑运算符做类似的事情AND.这是我的第一次尝试:
In [1]: d = pandas.DataFrame([{'foo':True, 'bar':True}, {'foo':True, 'bar':False}, {'foo':False, 'bar':False}])
In [2]: d
Out[2]:
bar foo
0 True True
1 False True
2 False False
In [3]: d.bar and d.foo ## can't
...
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
Run Code Online (Sandbox Code Playgroud)
所以我猜逻辑运算符与pandas中的数字运算符的工作方式不同.我尝试做错误消息建议和使用bool():
In [258]: d.bar.bool() and d.foo.bool() ## spoiler: this doesn't work either
...
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), …Run Code Online (Sandbox Code Playgroud) 我读到JavaScript中的双管道检查变量是否是假的,这undefined是JavaScript中的虚假值,例如
这意味着如果值为falsey(例如0,"",null,undefined(另请参见JavaScript中的所有falsey值)),则将其视为false; 否则它被视为真实.
所以我尝试了这一点,发现undefined确实没有被评估为假,而是抛出一个错误:
let elemContent = document.getElementById('content');
let a = null;
let b = 2;
elemContent.innerHTML += a || 'ok'; // "ok"
elemContent.innerHTML += b || 'ok'; // "2"
elemContent.innerHTML += whatever || 'ok'; // "ERROR: whatever is not defined"
Run Code Online (Sandbox Code Playgroud)
是否是undefinedJavaScript中的虚假价值,或者如何理解这一矛盾?
您能否尽可能简单地解释deMorgan规则(例如,对于只有中学数学背景的人)?
通常在PHP中,我看到:
$result = mysql_query($query) or die();
Run Code Online (Sandbox Code Playgroud)
来自python,我知道为什么这应该工作,因为or如果在布尔上下文中为真,则返回第一个值,否则返回第二个值(请参阅此).
但是当我在另一个上下文中尝试PHP中的上述技术时,例如:
$name = "John Doe";
echo $name or "Anonymous";
Run Code Online (Sandbox Code Playgroud)
在or不返回的第一个值("张三"),则返回1.
为什么这在mysql_query()结果案例中有效,但在其他情况下却没有?在mysql_query()情况下使用是否不好(忽略我没有向用户返回有用错误的事实)?
它是一回事吗?还是有一点点差异?我只是想确保我不会误解任何事情.
我在我的项目中使用Room持久性数据库.我有一个表,其中有一个布尔值列,如0或1,现在我想要所有布尔值的计数,其值为true(或1).
我知道我可以通过使用where子句获取所有选定行的计数来使用select查询实现此目的!
但我不想使用选择查询与where子句为此,因为它将加载所有行,然后我将得到计数,但我想要计数而不加载任何行!建议其他简单的解决方案!谢谢!
database android boolean-operations booleanquery android-room
python ×2
android ×1
android-room ×1
boolean ×1
booleanquery ×1
built-in ×1
database ×1
java ×1
javascript ×1
list ×1
pandas ×1
php ×1
string ×1
undefined ×1