On 16.10.2016 07:08, David Mertz wrote:
In case it wasn't entirely clear, I strongly and vehemently opposed this unnecessary new syntax. It is confusing, bug prone, and would be difficult to teach.
As this discussion won't come to an end, I decided to consult my girlfriend.
I started with (btw. she learned basic Python to solve some math quizzes): """ Let's install a list in another one.
[2, 3, 4, 5]
['a', meine_liste, 'b']
['a', [2, 3, 4, 5], 'b']
Maybe, we want to remove the brackets.
['a', *meine_liste, 'b']
['a', 2, 3, 4, 5, 'b']
Now, the problem of the discussion is the following:
[(i,i,i) for i in range(4)]
[(0, 0, 0), (1, 1, 1), (2, 2, 2), (3, 3, 3)]
Let's remove these inner parentheses again.
[*(i,i,i) for i in range(4)]
File "<stdin>", line 1 SyntaxError: iterable unpacking cannot be used in comprehension
Some guy wanted to remove that restriction. """
I said a teacher contributed to the discussion and he finds this too complicated and confusing and does not even teach * in list displays at all. Her reaction was hilarious:
"Whom does he teach? Children?" Me: "What? No, everybody I think. Why?" She: "It's easy enough to remember what the star does."
She also asked what would the alternative would look like. I wrote: """
from itertools import chain list(chain.from_iterable((i,i,i) for i in range(4)))
[0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3] """ Her reaction was like: "That's supposed to be easy to remember? I find the star easier."
In the end, she also added: "Not everybody drives a car but they still exist."
PS: off to the weekend. She's already complaint that I should spend less time inside my mailbox and more with her. ;)