Python Forum
I don't understand this result
Thread Rating:
  • 1 Vote(s) - 2 Average
  • 1
  • 2
  • 3
  • 4
  • 5
I don't understand this result
#1
>>> a = [1, 2, 4, 5]
>>> def az():
            x * 2

>>> q = map(az, [2, 3, 4])
>>> list(q)
[None, None, None]
Reply
#2
You forgot to return the value computed in your function:

>>> def az(x):
...   return x*2
... 
>>> q = map(az, [2, 3, 4])
>>> list(q)
[4, 6, 8]
Reply
#3
This code is incomplete.
the definition of az is was missing it's body ok now
Reply
#4
just to mention that there is no need to explicitly convert the result to list
>>> def az(x):
return x*2

>>> q = map(az, [2, 3, 4])
>>> q
[4, 6, 8]
Reply
#5
(Mar-27-2017, 12:10 PM)buran Wrote: just to mention that there is no need to explicitly convert the result to list
Python 3 has changed a lot buran Wink
# Python 3.6
>>> def az(x):
...     return x*2
... 
>>> q = map(az, [2, 3, 4])
>>> q
<map object at 0x049C8EB0>
>>> list(q)
[4, 6, 8]
# Python 2.7
>>> def az(x):
...     return x * 2
...     
>>> q = map(az, [2, 3, 4])
>>> q
[4, 6, 8]
Built-ins like range, map, zip, filter become iterables in 3.x to conserve space,
rather than producing a result list all at once in memory.
Reply
#6
(Mar-27-2017, 01:53 PM)snippsat Wrote: Python 3 has changed a lot buran Wink

Built-ins like range, map, zip, filter become iterables in 3.x to conserve space,
rather than producing a result list all at once in memory.
Funny part is - I know it, but I tend to think python2 more often than python3
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Two same codes, different result. Please help to understand. vickyprabhat 5 3,588 Mar-24-2018, 11:33 PM
Last Post: vickyprabhat
  I don't understand this result Ponomarenko Pavlo 3 3,761 Jan-15-2017, 04:40 PM
Last Post: Kebap

Forum Jump:

User Panel Messages

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