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或Falsefalse,它可以更清楚地将其链接到~True结果,并且a的算术求bool反与其逻辑求反也不同。我不是想变得更深。我只是重点介绍了3种操作以及有时会混淆的底层特殊方法。
~由特殊方法实现的一元补码运算符__invert__与该not运算符无关,后者在逻辑上取反了__bool__(或__nonzero__在2.x中)返回的值 。它也与所实现的-一元求反运算符无关__neg__。例如~True == -2,不是False或false,而-False == 0仍然是false。