Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   Python (http://www.velocityreviews.com/forums/f43-python.html)
-   -   Delete all list entries of length unknown (http://www.velocityreviews.com/forums/t700451-delete-all-list-entries-of-length-unknown.html)

flebber 10-05-2009 03:09 AM

Delete all list entries of length unknown
 
Hi

Can someone clear up how I can remove all entries of a list when I am
unsure how many entries there will be. I have been using sandbox to
play essentially I am creating two lists a and b I then want to add a
to b and remove all b entries. This will loop and b will receive new
entries add it to a and delete again.

I am going wrong with slice and list deletion, I assign x = len(b) and
then attempting to delete based on this. Here is my sandbox session.
What part am I getting wrong?

#>>>
a = (1, 2, 3, 4)
b = (5, 6, 7, 8)
#>>>
a
#---
(1, 2, 3, 4)
#>>>
b
#---
(5, 6, 7, 8)
#>>>
a + b
#---
(1, 2, 3, 4, 5, 6, 7, 8)
#>>>
b
#---
(5, 6, 7, 8)
#>>>
len(b)
#---
4
#>>>
x = len(b)
#>>>
del b[0:x]
Traceback (most recent call last):
Error: File "<Shell>", line 1, in <module>
Error: TypeError: 'tuple' object does not support item deletion
#>>>
b[0:x] = d
Traceback (most recent call last):
Error: File "<Shell>", line 1, in <module>
Error: NameError: name 'd' is not defined
#>>>

r 10-05-2009 03:47 AM

Re: Delete all list entries of length unknown
 
On Oct 4, 10:09*pm, flebber <flebber.c...@gmail.com> wrote:
> Hi
>
> Can someone clear up how I can remove all entries of a list when I am
> unsure how many entries there will be.


Sure...!

>>> a = range(10)
>>> a

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> del a[0]
>>> a

[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> del a[-1]
>>> a

[1, 2, 3, 4, 5, 6, 7, 8]
>>> del a[:]
>>> a

[]

or you could simple say

>>> a = []


;-)

Chris Rebert 10-05-2009 03:47 AM

Re: Delete all list entries of length unknown
 
On Sun, Oct 4, 2009 at 8:09 PM, flebber <flebber.crue@gmail.com> wrote:
> Hi
>
> Can someone clear up how I can remove all entries of a list when I am
> unsure how many entries there will be. I have been using sandbox to
> play essentially I am creating two lists a and b I then want to add a
> to b and remove all b entries. This will loop and b will receive new
> entries add it to a and delete again.
>
> I am going wrong with slice and list deletion, I assign x = len(b) and
> then attempting to delete based on this. Here is my sandbox session.
> What part am I getting wrong?
>
> #>>>
> a = (1, 2, 3, 4)
> b = (5, 6, 7, 8)

<snip>
> x = len(b)
> #>>>
> del b[0:x]
> Traceback (most recent call last):
> Error: * File "<Shell>", line 1, in <module>
> Error: TypeError: 'tuple' object does not support item deletion


As the error message says, you're using *tuples*, not lists.
Tuples are immutable (i.e. they cannot be modified after creation) and
are created using parentheses.
Lists on the other hand are made using brackets: [1, 2, 3, 4] # like this

Additionally, the idiomatic way to clear a list (besides the more
obvious approach of just assigning a new, empty list to the variable)
is:
del a[:]

Leaving out the endpoints in the slice causes it to default to the
entire contents of the list.

Cheers,
Chris
--
http://blog.rebertia.com

Mark Tolonen 10-05-2009 04:05 AM

Re: Delete all list entries of length unknown
 

"Chris Rebert" <clp2@rebertia.com> wrote in message
news:50697b2c0910042047i1cf2c1a3mc388bc74bab95d25@ mail.gmail.com...
> Tuples are immutable (i.e. they cannot be modified after creation) and
> are created using parentheses.


Slight correction: tuples are created using commas. Parentheses are only
needed to disambiguate from other uses of comma:

Python 2.6.2 (r262:71605, Apr 14 2009, 22:40:02) [MSC v.1500 32 bit (Intel)]
on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> a=1,
>>> a

(1,)
>>> a=1,2,3
>>> a

(1, 2, 3)

-Mark



flebber 10-05-2009 09:53 AM

Re: Delete all list entries of length unknown
 
On Oct 5, 3:05*pm, "Mark Tolonen" <metolone+gm...@gmail.com> wrote:
> "Chris Rebert" <c...@rebertia.com> wrote in message
>
> news:50697b2c0910042047i1cf2c1a3mc388bc74bab95d25@ mail.gmail.com...
>
> > Tuples are immutable (i.e. they cannot be modified after creation) and
> > are created using parentheses.

>
> Slight correction: tuples are created using commas. *Parentheses are only
> needed to disambiguate from other uses of comma:
>
> Python 2.6.2 (r262:71605, Apr 14 2009, 22:40:02) [MSC v.1500 32 bit (Intel)]
> on win32
> Type "help", "copyright", "credits" or "license" for more information.>>> a=1,
> >>> a

> (1,)
> >>> a=1,2,3
> >>> a

>
> (1, 2, 3)
>
> -Mark


Awesome that has cleared it up for me, plus a bit more thanks.

r 10-12-2009 03:52 AM

Re: Delete all list entries of length unknown
 
On Oct 4, 11:05*pm, "Mark Tolonen" <metolone+gm...@gmail.com> wrote:
> "Chris Rebert" <c...@rebertia.com> wrote in message
> > Tuples are immutable (i.e. they cannot be modified after creation) and
> > are createdusingparentheses.

>
> Slight correction: tuples are createdusingcommas. *Parentheses are only
> needed to disambiguate from other uses ofcomma:
>
> Python 2.6.2 (r262:71605, Apr 14 2009, 22:40:02) [MSC v.1500 32 bit (Intel)]
> on win32
> Type "help", "copyright", "credits" or "license" for more information.>>> a=1,
> >>> a

> (1,)
> >>> a=1,2,3
> >>> a

>
> (1, 2, 3)


uhh? what python you using?

>>> t = ()
>>> t

()
>>> type(t)

<type 'tuple'>

;-)


All times are GMT. The time now is 02:26 AM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.