Python Forum
penjee . com and non-pythonic code
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
penjee . com and non-pythonic code
#11
(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.  Big Grin What did you do?  Huh

@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.
"As they say in Mexico 'dosvidaniya'. That makes two vidaniyas."
https://freedns.afraid.org
Reply
#12
(Feb-28-2017, 10:30 PM)wavic Wrote: I am totally lost here.  Big Grin What did you do?  Huh

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).
Reply
#13
(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]

Cry Shifty Sick *vomit*
Reply
#14
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__
Craig "Ichabod" O'Brien - xenomind.com
I wish you happiness.
Recommended Tutorials: BBCode, functions, classes, text adventures
Reply
#15
(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
Reply
#16
(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.
Craig "Ichabod" O'Brien - xenomind.com
I wish you happiness.
Recommended Tutorials: BBCode, functions, classes, text adventures
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  system programming in pythonic code Skaperen 3 2,914 Jun-21-2018, 01:57 AM
Last Post: Skaperen

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020