Syntax question

geremy condra debatem1 at gmail.com
Wed Jun 2 13:56:42 EDT 2010


On Wed, Jun 2, 2010 at 10:40 AM, pmz <przemek.zawada at gmail.com> wrote:
> Dear Group,
>
> It's really rookie question, but I'm currently helping my wife in some
> python-cases, where I'm non-python developer and some of syntax-diffs
> make me a bit confused.
>
> Could anyone give some light on line, as following:
> "ds = d[:]"  ### where 'd' is an array

I'm guessing you mean that d is a list. The square
braces with the colon is python's slicing notation,
so if I say [1,2,3,4][0] I get a 1 back, and if I say
[1,2,3,4][1:4] I get [2,3,4]. Python also allows a
shorthand in slicing, which is that if the first index
is not provided, then it assumes 0, and that if the
second index is not provided, it assumes the end
of the list. Thus, [1,2,3,4][:2] would give me [1,2]
and [1,2,3,4][2:] would give me [3, 4]. Here, neither
has been provided, so the slice simply takes the
items in the list from beginning to end and returns
them- [1,2,3,4][:] gives [1,2,3,4].

The reason someone would want to do this is
because lists are mutable data structures. If you
fire up your terminal you can try the following
example:

>>> a = [1,2,3,4]
>>> b = a
>>> c = [:]
>>> b[0] = 5
>>> b
[5,2,3,4]
>>> # here's the issue
>>> a
[5,2,3,4]
>>> # and the resolution
>>> c
[1,2,3,4]

Hope this helps.

Geremy Condra



More information about the Python-list mailing list