On 17.10.2016 20:38, David Mertz wrote:
Under my proposed "more flexible recursion levels" idea, it could even
be:
[f(x) for x in flatten(it, levels=3)]
There would simply be NO WAY to get that out of the * comprehension
syntax at all. But a decent flatten() function gets all the flexibility.
I see what you are trying to do here and I appreciate it. Just one
thought from my practical experience: I haven't had a single usage for
levels > 1. levels==1 is basically * which I have at least one example
for. Maybe, that relates to the fact that we asked our devs to use names
(as in attributes or dicts) instead of deeply nested list/tuple structures.
Do you think it would make sense to start a new thread just for the sake
of readability?
Honestly, it goes beyond just being "wrong". The repeated refusal to
even acknowledge any equivalence between [...x... for x in [a, b, c]]
and [...a..., ...b..., ...c...] truly makes it difficult for me to
accept some people's _sincerity_.
I am absolutely sincere in disliking and finding hard-to-teach this
novel use of * in comprehensions.
You are consistent at least. You don't teach * in list displays, no
matter if regular lists or comprehensions. +1
P.S. It's very artificial to assume user are unable to use 'from
itertools import chain' to try to make chain() seem more cumbersome
than it is.
I am sorry but it is cumbersome.
Regards,
Sven
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/