Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #25309

Re: lambda in list comprehension acting funny

From 88888 Dihedral <dihedral88888@googlemail.com>
Newsgroups comp.lang.python
Subject Re: lambda in list comprehension acting funny
Date 2012-07-14 03:31 -0700
Organization http://groups.google.com
Message-ID <34872b84-3724-41d0-92ca-b7fec60b0efc@googlegroups.com> (permalink)
References <CADjSo4QvTnGKy_ZYOO5qZu3tSKovwAMGjku4L+RXEkYmwXPz4g@mail.gmail.com> <mailman.2007.1341988993.4697.python-list@python.org> <P%wLr.743666$N53.119162@fx20.am4>

Show all headers | View raw


Alister於 2012年7月12日星期四UTC+8下午5時44分15秒寫道:
> On Wed, 11 Jul 2012 08:43:11 +0200, Daniel Fetchinson wrote:
> 
> &gt;&gt; funcs = [ lambda x: x**i for i in range( 5 ) ]
> &gt;&gt; print funcs[0]( 2 )
> &gt;&gt; print funcs[1]( 2 )
> &gt;&gt; print funcs[2]( 2 )
> &gt;&gt;
> &gt;&gt; This gives me
> &gt;&gt;
> &gt;&gt; 16 16 16
> &gt;&gt;
> &gt;&gt; When I was excepting
> &gt;&gt;
> &gt;&gt; 1
> &gt;&gt; 2
> &gt;&gt; 4
> &gt;&gt;
> &gt;&gt; Does anyone know why?
> &gt; 
> &gt; And more importantly, what&#39;s the simplest way to achieve the latter? :)
> 
> Having read Steve&#39;s explanation in the other thread (which I think has 
> finally flipped the light switch on lambda for me) it only requires a 
> minor change
> 
> funcs=[ lambda x,y=i:x**y for i in range(5) ]
> 
> although I cant actually think why this construct would be needed in 
> practice, how are you actually using it
> 
> 
> -- 
> * Simunye is so happy she has her mothers gene&#39;s
> &lt;Dellaran&gt; you better give them back before she misses them!

Uhn, there are 5 objects in the list if not factored well to be executed in 
the run time.

Back to comp.lang.python | Previous | NextPrevious in thread | Find similar | Unroll thread


Thread

Re: lambda in list comprehension acting funny Daniel Fetchinson <fetchinson@googlemail.com> - 2012-07-11 08:43 +0200
  Re: lambda in list comprehension acting funny Franck Ditter <franck@ditter.org> - 2012-07-12 08:49 +0200
  Re: lambda in list comprehension acting funny Alister <alister.ware@ntlworld.com> - 2012-07-12 09:44 +0000
    Re: lambda in list comprehension acting funny Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2012-07-12 11:29 +0000
    Re: lambda in list comprehension acting funny 88888 Dihedral <dihedral88888@googlemail.com> - 2012-07-14 03:31 -0700

csiph-web