Python中的tilde运算符有什么用?
我能想到的一件事是在字符串或列表的两面都做一些事情,例如检查字符串是否为回文:
def is_palindromic(s):
return all(s[i] == s[~i] for i in range(len(s) / 2))
还有其他好的用法吗?
-False==0
)它令人困惑,因为您正在谈论~
,而~False == -1
这不是False。
__neg__
)比较。可能我应该继续使用True
,例如-True == -1
,它不是-2或False
false,它可以更清楚地将其链接到~True
结果,并且a的算术求bool
反与其逻辑求反也不同。我不是想变得更深。我只是重点介绍了3种操作以及有时会混淆的底层特殊方法。
~
由特殊方法实现的一元补码运算符__invert__
与该not
运算符无关,后者在逻辑上取反了__bool__
(或__nonzero__
在2.x中)返回的值 。它也与所实现的-
一元求反运算符无关__neg__
。例如~True == -2
,不是False
或false,而-False == 0
仍然是false。