Posts: 2,953
Threads: 48
Joined: Sep 2016
(Feb-28-2017, 09:54 PM)Ofnuts Wrote: Warning: using a comprehension for the side effects should only be attempted by trained professionals.
numbers = [12, 37, 5, 42, 8, 3]
even,odd=[],[]
_=[[even,odd][i%2].append(i) for i in numbers]
I am totally lost here.  What did you do?
@ buran, thank you for this. I was thinking that list.next() is next element from the list but it is next index. And it's reindexing all when I change the list.
Posts: 331
Threads: 2
Joined: Feb 2017
Feb-28-2017, 10:57 PM
(This post was last modified: Feb-28-2017, 10:58 PM by zivoni.)
(Feb-28-2017, 10:30 PM)wavic Wrote: I am totally lost here. What did you do? 
Ofnuts uses n % 2 (0 or 1) to select either odd or even list to append number. Comprehension is used to iterate over numbers while external variables - even and odd lists - are modified. Comprehension's result is unimportant and discarded (list of None's).
Posts: 3,458
Threads: 101
Joined: Sep 2016
(Feb-28-2017, 09:54 PM)Ofnuts Wrote: Warning: using a comprehension for the side effects should only be attempted by trained professionals.
numbers = [12, 37, 5, 42, 8, 3]
even,odd=[],[]
_=[[even,odd][i%2].append(i) for i in numbers]
 *vomit*
Posts: 4,220
Threads: 97
Joined: Sep 2016
Oh, yeah?
def even_odd(n, even = [], odd = []):
[even, odd][n % 2].append(n)
list(map(even_odd, [12, 37, 5 42, 8, 3]))
even, odd = even_odd.__defaults__
Posts: 687
Threads: 37
Joined: Sep 2016
(Mar-01-2017, 01:58 AM)ichabod801 Wrote: Oh, yeah?
def even_odd(n, even = [], odd = []):
[even, odd][n % 2].append(n)
list(map(even_odd, [12, 37, 5 42, 8, 3]))
even, odd = even_odd.__defaults__
You can't run it several times, because the data is accumulated in the two lists that are used as default values.
Unless noted otherwise, code in my posts should be understood as "coding suggestions", and its use may require more neurones than the two necessary for Ctrl-C/Ctrl-V.
Your one-stop place for all your GIMP needs: gimp-forum.net
Posts: 4,220
Threads: 97
Joined: Sep 2016
(Mar-01-2017, 08:12 AM)Ofnuts Wrote: You can't run it several times, because the data is accumulated in the two lists that are used as default values.
That wasn't in the requirements. If you want new features you'll have to extend the contract.
|