¿Cuál es el uso del operador tilde en Python?
Una cosa en la que puedo pensar es hacer algo en ambos lados de una cadena o lista, como verificar si una cadena es palindrómica o no:
def is_palindromic(s):
return all(s[i] == s[~i] for i in range(len(s) / 2))
¿Algún otro buen uso?
-False==0
) Es confuso, ya que estabas hablando sobre el ~
, y ~False == -1
que no es falso.
__neg__
). Probablemente debería haber seguido usando True
, por ejemplo -True == -1
, que no es -2 o False
falso, lo que lo vincula más claramente con el ~True
resultado y también que la negación aritmética de a bool
es diferente de su negación lógica. No estaba tratando de ser profundo. Solo estaba destacando 3 operaciones y los métodos especiales subyacentes que a veces se confunden.
~
implementado por el método especial__invert__
no está relacionado con elnot
operador, que lógicamente niega el valor devuelto por__bool__
(o__nonzero__
en 2.x). Tampoco está relacionado con el-
operador de negación unario, implementado por__neg__
. Por ejemplo~True == -2
, que no esFalse
o falso, y-False == 0
que sigue siendo falso.