Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #64354
| From | Piet van Oostrum <piet@vanoostrum.org> |
|---|---|
| Newsgroups | comp.lang.python |
| Subject | Re: How to write this as a list comprehension? |
| Date | 2014-01-20 12:02 +0100 |
| Message-ID | <m238ki531r.fsf@cochabamba.vanoostrum.org> (permalink) |
| References | <m2sism42n8.fsf@cochabamba.vanoostrum.org> <mailman.5671.1390034188.18130.python-list@python.org> <ff9f6177-b41c-446c-9f57-dbc9b6488b6f@googlegroups.com> <qotha91nutu.fsf@ruuvi.it.helsinki.fi> <op.w9yj2ok55079vu@gnudebeest> |
"Rhodri James" <rhodri@wildebst.org.uk> writes: > On Sat, 18 Jan 2014 16:00:45 -0000, Jussi Piitulainen > <jpiitula@ling.helsinki.fi> wrote: [...] >> I would write that on three lines anyway, properly indented: >> >> [ somefunc(mn,day,wd,name) >> for (then, name) in mylist >> let (_,mn,dy,_,_,_,wd,_,_) = localtime(then) ] >> >> It could be made to use existing keywords: >> >> [ somefunc(mn,day,wd,name) >> for (then, name) in mylist >> with localtime(then) as (_,mn,dy,_,_,_,wd,_,_) ] > > Better, in that it's readable. It's still storing up trouble, though. > > Seriously, what's inelegant about this? > > def meaningful_name(then, name): > _,mn,dy,_,_,_,wd,_,_ = localtime(then) > return somefunc(mn, dy, wd, name) > > ... > > [meaningful_name(then, name) for (then, name) in mylist] > > I assume there's some good reason you didn't want somefunc() to do the > localtime() itself? Actually in my use case somefunc(mn,day,wd,name) was an expression, not really a function call. I just presented it like that to make it a more generalised abstract case. So in my case that would introduce an additional function outside of the comprehension. Let me summarize what my problem really was: In a comprehension you generally need local name(s), which can only be introduced with the 'for' construction. But then the name(s) must be bound to an element of a sequence/iterator. There is no way to bind the name(s) to a single object other than putting that object in a one element sequence. I was just looking for a way to avoid that. Functional programming languages have a way to do this with the 'let' or 'where' construction which is missing in Python. Thanks everybody for your thoughts on this. -- Piet van Oostrum <piet@vanoostrum.org> WWW: http://pietvanoostrum.com/ PGP key: [8DAE142BE17999C4]
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
How to write this as a list comprehension? Piet van Oostrum <piet@vanoostrum.org> - 2014-01-18 00:19 +0100
Re: How to write this as a list comprehension? Dan Stromberg <drsalists@gmail.com> - 2014-01-17 15:49 -0800
Re: How to write this as a list comprehension? Rustom Mody <rustompmody@gmail.com> - 2014-01-17 19:25 -0800
Re: How to write this as a list comprehension? Piet van Oostrum <piet@vanoostrum.org> - 2014-01-18 11:00 +0100
Re: How to write this as a list comprehension? Peter Otten <__peter__@web.de> - 2014-01-18 09:36 +0100
Re: How to write this as a list comprehension? Rustom Mody <rustompmody@gmail.com> - 2014-01-18 07:20 -0800
Re: How to write this as a list comprehension? Jussi Piitulainen <jpiitula@ling.helsinki.fi> - 2014-01-18 18:00 +0200
Re: How to write this as a list comprehension? "Rhodri James" <rhodri@wildebst.org.uk> - 2014-01-19 23:41 +0000
Re: How to write this as a list comprehension? Piet van Oostrum <piet@vanoostrum.org> - 2014-01-20 12:02 +0100
Re: How to write this as a list comprehension? Rustom Mody <rustompmody@gmail.com> - 2014-01-20 03:47 -0800
Re: How to write this as a list comprehension? matej@ceplovi.cz (Matěj Cepl) - 2014-01-18 11:57 +0100
Re: How to write this as a list comprehension? Alain Ketterlin <alain@dpt-info.u-strasbg.fr> - 2014-01-18 12:53 +0100
Re: How to write this as a list comprehension? Piet van Oostrum <piet@vanoostrum.org> - 2014-01-18 18:40 +0100
Re: How to write this as a list comprehension? John Allsup <pydev@allsup.co> - 2014-01-19 01:24 +0000
Re: How to write this as a list comprehension? Piet van Oostrum <piet@vanoostrum.org> - 2014-01-19 23:06 +0100
csiph-web