How to do [1]*4 for a tuple

Discussion in 'Python' started by Vineet Jain, Apr 6, 2004.

1. Vineet JainGuest

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

Vineet Jain, Apr 6, 2004

2. Rob WilliscroftGuest

Vineet Jain wrote in news:mailman.375.1081213535.20120.python-
:

> 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/

Rob Williscroft, Apr 6, 2004

3. Stephen HorneGuest

On Mon, 5 Apr 2004 21:05:34 -0400, "Vineet Jain" <>
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

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

Stephen Horne, Apr 6, 2004