On 07/10/2019 14:52, Random832 wrote:
On Mon, Oct 7, 2019, at 09:22, Rhodri James wrote:
On 04/10/2019 20:34, Caleb Donovick wrote:
The first  and perhaps the most obvious, is doing relational queries.
```
where_x_1 = db[x=1]
```
is more beautiful than
```
where_x_1 = db[dict(x=1)]
where_x_1 = db[{'x': 1}]
# or by abusing slices
where_x_1 = db['x':1]
# or in the style of Pandas
where_x_1 = db[db['x'] == 1]
```

OK, I'm not sure what you're trying to do here, which all on its own
says that what you're doing isn't self-explanatory.  Would I be right in
thinking you want a shorthand for:

where_x_1 = [k for k,v in db if v == 1]

If so, I'd rather the comprehension, thanks.  It at least says what it does.

It'd be [v for v in db if v['x'] == 1], anyway,

Sorry. I regard this as more proof that what's being asked for isn't in the least bit obvious!

but the point is the list comprehension can't be analyzed by frameworks like 
Pandas (to execute more efficiently) or SqlAlchemy (to turn it into a sql query 
that gets executed server-side). And for that matter can't return any type 
other than a list [or generator, if you used the generator expression syntax 
instead]

Or a dict, or a set... or whatever the right tool for the specific job actually turns out to be. I still think it's completely wrong-headed syntax trying to do something that would be much better done another way, in particular explicitly. Caleb is right that "db[x=1]" looks prettier than all his alternatives, but that's a really low bar. Is there something inherently wrong with a functional interface?

--
Rhodri James *-* Kynesim Ltd
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/5BRT4CGFEAG2MCRWXCWRSDWY6OWO424L/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to