P: n/a

Hi,
Suppose i have a list v which collects some numbers,how do i
remove the common elements from it ,without using the set() opeartor.
Thanks  
Share this Question
P: n/a
 sa**********@gmail.com wrote:
Hi,
Suppose i have a list v which collects some numbers,how do i
remove the common elements from it ,without using the set() opeartor.
Is this a test? Why don't you want to use the set operator?
Anyway, you can just move things from one list into another
excluding those which are already moved:
<code>
numbers = [1, 2, 3, 3, 4, 4, 5]
unique_numbers = []
for n in numbers:
if n not in unique_numbers:
unique_numbers.append (n)
print unique_numbers
</code>
It won't be the fastest thing you could do, but it
does work. Using a dictionary would speed things up,
but then you're basically implementing a set using
a dictionary.
TJG  
P: n/a
 sa**********@gmail.com wrote:
Hi,
Suppose i have a list v which collects some numbers,how do i
remove the common elements from it ,without using the set() opeartor.
Thanks
Several ways, but probably not as efficient as using a set. (And why
don't you want to use a set, one wonders???)
>>l = [1,2,3,1,2,1]
Using a set:
>>set(l)
set([1, 2, 3])
Building the list element by element:
>>for e in l:
.... if e not in r:
.... r.append(e)
....
>>print r
[1, 2, 3]
Using a dictionary:
>>d = dict(zip(l,l)) d
{1: 1, 2: 2, 3: 3}
>>d.keys()
[1, 2, 3]
>>>
 
P: n/a

On Tue, 20070515 at 23:17 0700, sa**********@gmail.com wrote:
Hi,
Suppose i have a list v which collects some numbers,how do i
remove the common elements from it ,without using the set() opeartor.
Thanks
If the list is sorted, you can weed out the duplicates with
itertools.groupby:
>>import itertools L = [1,2,3,3,4,4,5] [k for (k,_) in itertools.groupby(L, lambda x:x)]
[1, 2, 3, 4, 5]
HTH,

Carsten Haese http://informixdb.sourceforge.net  
P: n/a

On May 16, 2:17 am, saif.shak...@gmail.com wrote:
Hi,
Suppose i have a list v which collects some numbers,how do i
remove the common elements from it ,without using the set() opeartor.
Thanks
Submit this as your homework answer  it will blow your TA's mind!
import base64
def uniq(v):
return
eval(base64.b64decode('c29ydGVkKGxpc3Qoc2V0KHYpKSx rZXk9bGFtYmRhIHg6di5pbmRleCh4KSk='),locals())  
P: n/a

On May 16, 2007, at 10:36 AM, John Zenger wrote:
On May 16, 2:17 am, saif.shak...@gmail.com wrote:
>Hi, Suppose i have a list v which collects some numbers,how do i remove the common elements from it ,without using the set() opeartor. Thanks
Submit this as your homework answer  it will blow your TA's mind!
import base64
def uniq(v):
return
eval(base64.b64decode
('c29ydGVkKGxpc3Qoc2V0KHYpKSxrZXk9bGFtYmRhIHg6di5p bmRleCh4KSk='),local
s())
Nice! But I think he said he couldn't use set() ;)  
P: n/a

On May 16, 8:17 am, saif.shak...@gmail.com wrote:
Hi,
Suppose i have a list v which collects some numbers,how do i
remove the common elements from it ,without using the set() opeartor.
Thanks
There was a similar thread on polish python newsletter. The following
post displays 4 different approaches and explores timings: http://groups.google.com/group/pl.co...3618b18e63f3c9
Fortunately, python code is universal.   This discussion thread is closed Replies have been disabled for this discussion.   Question stats  viewed: 3088
 replies: 6
 date asked: May 16 '07
