Currently, Python only has ~ (tilde) in the context of a unary operation (like `-`, with __neg__(self), and `+`, __pos__(self)). 

`~` currently calls `__invert__(self)` in the unary context.

I think it would be awesome to have in the language, as it would allow modelling along the lines of R that we currently only get with text, e.g.:

smf.ols(formula='Lottery ~ Literacy + Wealth + Region', data=df)

With a binary context for ~, we could write the above string as pure Python, with implications for symbolic evaluation (with SymPy) and statistical modelling (such as with sklearn or statsmodels) - and other use-cases/DSLs.

In LaTeX we call this `\sim` (Wikipedia indicates this is for "similar to"). I'm not too particular, but `__sim__(self, other)` would have the benefits of being both short and consistent with LaTeX.

This is not a fully baked idea, perhaps there's a good reason we haven't added a binary `~`.  It seems like I've seen discussion in the past. But I couldn't find such discussion. And as I'm currently taking some statistics courses, I'm getting R-feature-envy again...

What do you think? 

Aaron Hall