A che serve l'operatore tilde in Python?
Una cosa a cui posso pensare è fare qualcosa su entrambi i lati di una stringa o di un elenco, ad esempio verificare se una stringa è palindromica o meno:
def is_palindromic(s):
return all(s[i] == s[~i] for i in range(len(s) / 2))
Qualche altro buon utilizzo?
-False==0) È confuso, dal momento che stavi parlando del ~, e ~False == -1che non è falso.
__neg__). Probabilmente avrei dovuto continuare ad usare True, ad esempio -True == -1, che non è -2 o Falseo falso, il che lo collega più chiaramente al ~Truerisultato e anche che la negazione aritmetica di a boolè diversa dalla sua negazione logica. Non stavo cercando di essere profondo. Stavo solo mettendo in evidenza 3 operazioni e i metodi speciali sottostanti che a volte vengono confusi.
~implementato con il metodo speciale__invert__non è correlatonotall'operatore, il che nega logicamente il valore restituito da__bool__(o__nonzero__in 2.x). Non è inoltre correlato-all'operatore di negazione unaria, implementato da__neg__. Ad esempio~True == -2, che non èFalseo falso e-False == 0che è ancora falso.