Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Delete all list entries of length unknown

Reply
Thread Tools

Delete all list entries of length unknown

 
 
flebber
Guest
Posts: n/a
 
      10-05-2009
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,
#>>>
a
#---
(1, 2, 3, 4)
#>>>
b
#---
(5, 6, 7,
#>>>
a + b
#---
(1, 2, 3, 4, 5, 6, 7,
#>>>
b
#---
(5, 6, 7,
#>>>
len(b)
#---
4
#>>>
x = len(b)
#>>>
del b[0]
Traceback (most recent call last):
Error: File "<Shell>", line 1, in <module>
Error: TypeError: 'tuple' object does not support item deletion
#>>>
b[0] = d
Traceback (most recent call last):
Error: File "<Shell>", line 1, in <module>
Error: NameError: name 'd' is not defined
#>>>
 
Reply With Quote
 
 
 
 
r
Guest
Posts: n/a
 
      10-05-2009
On Oct 4, 10:09*pm, flebber <(E-Mail Removed)> 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 = []



 
Reply With Quote
 
 
 
 
Chris Rebert
Guest
Posts: n/a
 
      10-05-2009
On Sun, Oct 4, 2009 at 8:09 PM, flebber <(E-Mail Removed)> 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,

<snip>
> x = len(b)
> #>>>
> del b[0]
> 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
 
Reply With Quote
 
Mark Tolonen
Guest
Posts: n/a
 
      10-05-2009

"Chris Rebert" <(E-Mail Removed)> 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


 
Reply With Quote
 
flebber
Guest
Posts: n/a
 
      10-05-2009
On Oct 5, 3:05*pm, "Mark Tolonen" <(E-Mail Removed)> wrote:
> "Chris Rebert" <(E-Mail Removed)> 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.
 
Reply With Quote
 
r
Guest
Posts: n/a
 
      10-12-2009
On Oct 4, 11:05*pm, "Mark Tolonen" <(E-Mail Removed)> wrote:
> "Chris Rebert" <(E-Mail Removed)> 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'>


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Picking X random entries from linked list of Y entries Don Bruder C Programming 3 08-03-2010 09:10 AM
Middle of a singly linked list of unknown length Himanshu Chauhan C Programming 15 06-13-2008 07:36 PM
get last two in a length of unknown length? M. Clift Python 8 08-19-2004 06:26 PM
Tying up Port Login table entries with Port Table Entries in CISCO SNMP John Ramsden Cisco 0 07-24-2004 04:03 PM
delete all the entries that contain "some string" from a file Rick Ng Chi Wah C Programming 2 07-29-2003 06:19 PM



Advertisments