Velocity Reviews > How to do [1]*4 for a tuple

How to do [1]*4 for a tuple

Vineet Jain
Guest
Posts: n/a

 04-06-2004
I'm not sure I understand why [1]*4 and (1)*4 work differently? [1]*4
results in [1, 1, 1, 1] while (1)*4 results in 4. There are times when I
have to do the following:

'%s some value %s and some other text %s' % (a)*3

as apposed to

'%s some value %s and some other text %s' % (a, a, a)

In this case I always end up doing

'%s some value %s and some other text %s' % [a]*3

VJ

Rob Williscroft
Guest
Posts: n/a

 04-06-2004
Vineet Jain wrote in news:mailman.375.1081213535.20120.python-
http://www.velocityreviews.com/forums/(E-Mail Removed):

> I'm not sure I understand why [1]*4 and (1)*4 work differently? [1]*4
> results in [1, 1, 1, 1] while (1)*4 results in 4. There are times when
> I have to do the following:
>

>>> (1,) * 4

(1, 1, 1, 1)
>>>

> '%s some value %s and some other text %s' % (a)*3
>

>>> a = "<aaa>"
>>> '%s some value %s and some other text %s' % ((a,)*3)

'<aaa> some value <aaa> and some other text <aaa>'

> as apposed to
>
> '%s some value %s and some other text %s' % (a, a, a)
>
> In this case I always end up doing
>
> '%s some value %s and some other text %s' % [a]*3
>

tuples are comma seperated items, parenthesis just bracket:

>>> b = 1, 3
>>> b

(1, 3)
>>> type( b )

<type 'tuple'>
>>> c = 1,
>>> c

(1,)
>>> type( c )

<type 'tuple'>
>>>

Rob.
--
http://www.victim-prime.dsl.pipex.com/

Stephen Horne
Guest
Posts: n/a

 04-06-2004
On Mon, 5 Apr 2004 21:05:34 -0400, "Vineet Jain" <(E-Mail Removed)>
wrote:

>I'm not sure I understand why [1]*4 and (1)*4 work differently? [1]*4
>results in [1, 1, 1, 1] while (1)*4 results in 4. There are times when I
>have to do the following:
>
>'%s some value %s and some other text %s' % (a)*3
>
>as apposed to
>
>'%s some value %s and some other text %s' % (a, a, a)
>
>In this case I always end up doing
>
>'%s some value %s and some other text %s' % [a]*3

You have the answer to your question already, but you may be better
off using a dictionary with the % operator to get named association...

>>> a={'a':'aaa'}
>>> print '%(a)s some value %(a)s and some other text %(a)s' % a

aaa some value aaa and some other text aaa

This works particularly well when not all substituted strings are the
same, and when you may want to change format strings in such a way
that the substitutions may not be in the same order, or may not all be
used, etc. In other words, it can be very useful when the format
strings are supplied externally.

It can be handy when the support guys want to decide the wording of
error messages (and change their minds every other day) for instance.

--
Steve Horne

steve at ninereeds dot fsnet dot co dot uk