| From a list L = ([1,2,3,4],[3,5,6,7],[7,8,9,10],[1,2,3.4]) remove duplicate sets here [1,2,3,4] has occurred twice and put only one making L = ([1,2,3,4],[3,5,6,7],[7,8,9,10])
L is a tuple. For a list, replace the outer parens with square brackets.
ccanonc (Sep 17 '10)
Please change your tags. "urgentX" is more annoying than I am.
ccanonc (Sep 17 '10) |
| The page fastest way to uniquify a list in python addresses this; there, it's claimed that the following function is the "best" (fast, and maintains order): def f5(seq, idfun=None):
# order preserving
if idfun is None:
def idfun(x): return x
seen = {}
result = []
for item in seq:
marker = idfun(item)
# in old Python versions:
# if seen.has_key(marker)
# but in new ones:
if marker in seen: continue
seen[marker] = 1
result.append(item)
return result
|
| Sage has a uniq() function already. However, it requires that the data is hashable, so you can uniq-ify tuples and frozensets but not lists and sets: |
Asked: Sep 17 '10
Seen: 678 times
Last updated: Sep 21 '10
powered by ASKBOT version 0.7.22
Copyright Sage, 2010. Some rights reserved under creative commons license.