Home     |     .Net Programming    |     cSharp Home    |     Sql Server Home    |     Javascript / Client Side Development     |     Ajax Programming

Ruby on Rails Development     |     Perl Programming     |     C Programming Language     |     C++ Programming     |     IT Jobs

Python Programming Language     |     Laptop Suggestions?    |     TCL Scripting     |     Fortran Programming     |     Scheme Programming Language


 
 
Cervo Technologies
The Right Source to Outsource

MS Dynamics CRM 3.0

Python Programming Language

lists - append - unique and sorted


hi,

can i append a item to a list using criterias:

- UNIQUE - if there already exist don't append

and/or

- SORTED - INSERT in the correct place using some criteria?

tks in advance

rhXX wrote:
> hi,

> can i append a item to a list using criterias:

> - UNIQUE - if there already exist don't append
> - SORTED - INSERT in the correct place using some criteria?

Both can be accomplished using the bisect-module. It will give you the
leftmost/rightmost insertion point for a given item and a list, and then
you have to see if it is contained in between (or something along these
lines, I hope you get the gist of it)

Diez

On 2007-06-06, rhXX <rh00@gmail.com> wrote:

> hi,

> can i append a item to a list using criterias:

> - UNIQUE - if there already exist don't append

Consult the Python Docs about sets.

> and/or

> - SORTED - INSERT in the correct place using some criteria?

Consult the Python Docs about the heapq module.

--
Neil Cerutti
Beethoven wrote fewer symphonies than Haydn and Mozart because he wrote
longer, and besides he went death. --Music Lit Essay

Neil Cerutti wrote:
> On 2007-06-06, rhXX <rh00@gmail.com> wrote:
>> and/or

>> - SORTED - INSERT in the correct place using some criteria?

> Consult the Python Docs about the heapq module.

Heaps (as produced by heapq) are not sorted.  This will not produce
correct results unless one then pops everything and de-dupes the output.

As Diez has already said, 'use the bisect module' .

  - Josiah

On Jun 6, 6:35 pm, Josiah Carlson <josiah.carl@sbcglobal.net>
wrote:
ok, tks to all for ur help and comments!!!

On 2007-06-06, Josiah Carlson <josiah.carl@sbcglobal.net> wrote:

> Neil Cerutti wrote:
>> On 2007-06-06, rhXX <rh00@gmail.com> wrote:
>>> and/or

>>> - SORTED - INSERT in the correct place using some criteria?

>> Consult the Python Docs about the heapq module.

> Heaps (as produced by heapq) are not sorted.  This will not
> produce correct results unless one then pops everything and
> de-dupes the output.

i agree that using bisect and inserting manually clearly meets
the stated requirements, while there isn't enough information to
know if a heapq will meet his requirements.

Thanks for the correction.

--
Neil Cerutti
In my prime I could have handled Michael Jordan.  Of course, he would be only
12 years old. --Jerry Sloan

--- Neil Cerutti <horp@yahoo.com> wrote:

> i agree that using bisect and inserting manually
> clearly meets
> the stated requirements, while there isn't enough
> information to
> know if a heapq will meet his requirements.

> Thanks for the correction.

If the OP is still reading, don't disregard heapq too
quickly.  

Heapq will perform much better for a large enough data
set, if the only thing that you eventually want to do
is occasionally pop off the first item or items in the
list.  One could even argue that it's a pretty rare
situation that you go through the trouble of keeping a
list sorted, only to occasionally randomly access the
data.

One more caveat--apart from the more constrained
semantics, heaps have the disadvantage of actually
being slower for a small enough dataset.  I haven't
measured this particular scenario, but any complicated
data structure usually loses out to a simple data
structure for small data sets, but as you get larger
and larger data sets, the more sophisticated data
structure begins to have big wins.

A typical use of heapq is for keeping a priority
queue.  See sched.py in the standard library for a
pretty simple and well commented example.

___________________________________________________________________________ _________
Boardwalk for $500? In 2007? Ha! Play Monopoly Here and Now (it's updated for today's economy) at Yahoo! Games.
http://get.games.yahoo.com/proddesc?gamekey=monopolyherenow  

On Jun 6, 10:26 am, rhXX <rh00@gmail.com> wrote:

> hi,

> can i append a item to a list using criterias:

> - UNIQUE - if there already exist don't append

> and/or

> - SORTED - INSERT in the correct place using some criteria?

> tks in advance

If you don't need the list to be sorted until you're done building it,
you can just use:

lst = sorted(set(lst))

"Dan Bishop" <danb@yahoo.com> wrote in message

news:1181181710.879767.234090@m36g2000hse.googlegroups.com...
| If you don't need the list to be sorted until you're done building it,
| you can just use:
|
| lst = sorted(set(lst))

?? looks same as
lst.sort()

Terry Reedy wrote:
> "Dan Bishop" <danb@yahoo.com> wrote in message
> news:1181181710.879767.234090@m36g2000hse.googlegroups.com...
>> If you don't need the list to be sorted until you're done building
>> it, you can just use:

>> lst = sorted(set(lst))

> ?? looks same as
> lst.sort()

You missed that the OP wants only unique values from the original list.

Tim Delaney

Add to del.icio.us | Digg this | Stumble it | Powered by Megasolutions Inc