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


Groups > comp.lang.python > #17537

Re: Transform two tuples item by item

Date 2011-12-19 20:42 -0600
From Tim Chase <python.list@tim.thechases.com>
Subject Re: Transform two tuples item by item
References <21814930.66.1324346655123.JavaMail.geo-discussion-forums@prmw6>
Newsgroups comp.lang.python
Message-ID <mailman.3840.1324348945.27778.python-list@python.org> (permalink)

Show all headers | View raw


On 12/19/11 20:04, Gnarlodious wrote:
> What is the best way to operate on a tuple of values
> transforming them against a tuple of operations? Result can be
> a list or tuple:
>
> tup=(35, '34', 0, 1, 31, 0, '&#26082;&#28639;')
>
> from cgi import escape
> [tup[0], "<span> class='H'>{}</span>".format(tup[1]), bool(tup[2]),
> bool(tup[3]), tup[4], bool(tup[5]), escape(tup[6])]
>
> ->  [35, "<span class='H'>34</span>", False, True, 31, False,
> '&amp;#26082;&amp;#28639;']
>
> But I want to loop rather than subscripting.

Well, you can do something like

 >>> from cgi import escape
 >>> nop = lambda x: x
 >>> tup = (35, '34', 0, 1, 31, 0, '&#26082;&#28639;')
 >>> ops = [nop, "<span class='H'>{0}</span>".format, bool, bool, 
nop, bool, escape]
 >>> [f(x) for f, x in zip(ops,tup)]
[35, "<span class='H'>34</span>", False, True, 31, False, 
'&amp;#26082;&amp;#28639;']

Note #1: I had to change your format from "{}" to "{0}", at least 
in 2.6 I've got here)

Note #2: it's spelled ".format" not ".format()" which puts the 
function reference in the "ops" list, not the results of calling it.

-tkc


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


Thread

Transform two tuples item by item Gnarlodious <gnarlodious@gmail.com> - 2011-12-19 18:04 -0800
  Re: Transform two tuples item by item Tim Chase <python.list@tim.thechases.com> - 2011-12-19 20:42 -0600
  Re: Transform two tuples item by item Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2011-12-20 03:40 +0000
  Re: Transform two tuples item by item Gnarlodious <gnarlodious@gmail.com> - 2011-12-19 19:40 -0800

csiph-web