Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #99574
| Path | csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail |
|---|---|
| From | Antoon Pardon <antoon.pardon@rece.vub.ac.be> |
| Newsgroups | comp.lang.python |
| Subject | Re: What does a list comprehension do |
| Date | Thu, 26 Nov 2015 14:33:59 +0100 |
| Lines | 65 |
| Message-ID | <mailman.138.1448544914.20593.python-list@python.org> (permalink) |
| References | <CAPTjJmpwjWnF=d6mpgbKS1biVLoR4APutgyH0n9t6CJ=Kh4dCg@mail.gmail.com> <877fldnm9z.fsf@handshake.de> <mailman.73.1448459485.20593.python-list@python.org> <pan.2015.11.26.11.13.43.440000@nowhere.invalid> <mailman.132.1448538769.20593.python-list@python.org> <87k2p4ex5x.fsf@elektro.pacujo.net> |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=utf-8 |
| Content-Transfer-Encoding | 7bit |
| X-Trace | news.uni-berlin.de QPXh6BkURWioQARoZAZpqwOnMp9p/gf507zYqX9la/ww== |
| Return-Path | <antoon.pardon@rece.vub.ac.be> |
| X-Original-To | python-list@python.org |
| Delivered-To | python-list@mail.python.org |
| X-Spam-Status | OK 0.018 |
| X-Spam-Evidence | '*H*': 0.96; '*S*': 0.00; 'received:134': 0.05; 'subject:skip:c 10': 0.07; 'works.': 0.07; '(0,': 0.09; 'python.': 0.11; 'def': 0.13; 'lambda': 0.16; 'python3.': 0.16; 'received:ac.be': 0.16; 'received:io': 0.16; 'received:psf.io': 0.16; "wouldn't": 0.16; 'proposed': 0.20; 'minor': 0.22; 'header :In-Reply-To:1': 0.24; 'header:User-Agent:1': 0.26; 'example': 0.26; 'subject:list': 0.26; 'change,': 0.27; 'function': 0.28; 'behaviour': 0.29; 'convert': 0.29; 'there.': 0.30; 'code': 0.30; 'received:be': 0.30; 'run': 0.33; 'clarify': 0.33; 'list': 0.34; 'could': 0.35; 'propose': 0.35; 'should': 0.36; 'to:addr:python- list': 0.36; 'subject:: ': 0.37; 'turned': 0.38; 'to:addr:python.org': 0.40; 'where': 0.40; 'your': 0.60; 'course': 0.62; '>>>>>': 0.66; 'results': 0.66; 'talking': 0.67; 'worth': 0.67; 'about,': 0.84; 'pardon': 0.84; 'schreef': 0.84 |
| X-IronPort-Anti-Spam-Filtered | true |
| X-IronPort-Anti-Spam-Result | AnIJAPcIV1aGuA9G/2dsb2JhbABehFcBJb93hg8CgX0BAQEBAQGFQAEBBCNVEQsaAgUWCwICCQMCAQIBRRMGAgKIKq4XjBWEHAEBCAIhgQGFU4R+hSeCToFEBZZXjTWBXIc0j1yDcmOEBXEBhV8BAQE |
| User-Agent | Mozilla/5.0 (X11; Linux i686; rv:31.0) Gecko/20100101 Icedove/31.8.0 |
| In-Reply-To | <87k2p4ex5x.fsf@elektro.pacujo.net> |
| X-BeenThere | python-list@python.org |
| X-Mailman-Version | 2.1.20+ |
| Precedence | list |
| List-Id | General discussion list for the Python programming language <python-list.python.org> |
| List-Unsubscribe | <https://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe> |
| List-Archive | <http://mail.python.org/pipermail/python-list/> |
| List-Post | <mailto:python-list@python.org> |
| List-Help | <mailto:python-list-request@python.org?subject=help> |
| List-Subscribe | <https://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe> |
| Xref | csiph.com comp.lang.python:99574 |
Show key headers only | View raw
Op 26-11-15 om 13:56 schreef Marko Rauhamaa: > Antoon Pardon <antoon.pardon@rece.vub.ac.be>: > >> Personnaly I would prefer: >> >>>>> q = [(lambda i: lambda x: i * x)(i) for i in range(4)] >>>>> q[0](1), q[3](1) >> (0, 3) >> >> And this is where I ask whether it would be worth the effort to change >> the behaviour of python. > Don't go there. > > Consider: > > q = [] > n = 0 > x = "hello" > > for i in range(4): > def stepper(): > global n > n += 1 > return i * x > q.append(stepper) > > print(n) > print(q[1]()) > print(n) > x = "there" > print(q[3]()) > print(n) > > which prints: > > 0 > hellohellohello > 1 > theretherethere > 2 > > after your change, you'd get: > > 0 > hello > 0 > hellohellohello > 0 I don't understand. What I propose would be a minor change in how list comprehension works. I don't see how your example can be turned into a list comprehension. I can of course put the stepper function out of the for loop and then convert the for loop into a list comprehension. The results in that case is that my proposed change wouldn't effect the results in python2 and that the code wouldn't run in python3. So could you clarify what list comprehension you are talking about, that you think would cause trouble, should my proposal be adopted. -- Antoon.
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
What does a list comprehension do (was: Late-binding of function defaults (was Re: What is a function parameter =[] for?)) Antoon Pardon <antoon.pardon@rece.vub.ac.be> - 2015-11-25 14:51 +0100
Re: What does a list comprehension do (was: Late-binding of function defaults (was Re: What is a function parameter =[] for?)) Nobody <nobody@nowhere.invalid> - 2015-11-26 11:13 +0000
Re: What does a list comprehension do Antoon Pardon <antoon.pardon@rece.vub.ac.be> - 2015-11-26 12:52 +0100
Re: What does a list comprehension do Marko Rauhamaa <marko@pacujo.net> - 2015-11-26 14:56 +0200
Re: What does a list comprehension do Antoon Pardon <antoon.pardon@rece.vub.ac.be> - 2015-11-26 14:33 +0100
Re: What does a list comprehension do Marko Rauhamaa <marko@pacujo.net> - 2015-11-26 15:56 +0200
Re: What does a list comprehension do Antoon Pardon <antoon.pardon@rece.vub.ac.be> - 2015-11-26 15:26 +0100
Re: What does a list comprehension do Marko Rauhamaa <marko@pacujo.net> - 2015-11-26 17:36 +0200
Re: What does a list comprehension do Antoon Pardon <antoon.pardon@rece.vub.ac.be> - 2015-11-26 20:18 +0100
Re: What does a list comprehension do Jussi Piitulainen <harvest@is.invalid> - 2015-11-26 18:11 +0200
csiph-web