Removing duplicate records from a Python list -
i obtaining data url , doing processing on data. have come point need eliminate duplicates. below output of program.
{u'price': 133.84, u'@number': u'1', u'mw': 10} {u'price': 139.09, u'@number': u'2', u'mw': 15} {u'price': 144.34, u'@number': u'3', u'mw': 10} {u'price': 148.53, u'@number': u'4', u'mw': 10} {u'price': 152.52, u'@number': u'5', u'mw': 9} {u'price': 133.84, u'@number': u'1', u'mw': 10} {u'price': 139.09, u'@number': u'2', u'mw': 15} {u'price': 144.34, u'@number': u'3', u'mw': 10} {u'price': 148.53, u'@number': u'4', u'mw': 10} {u'price': 152.52, u'@number': u'5', u'mw': 9} {u'price': 133.84, u'@number': u'1', u'mw': 10} {u'price': 139.09, u'@number': u'2', u'mw': 15} {u'price': 144.34, u'@number': u'3', u'mw': 10} {u'price': 148.53, u'@number': u'4', u'mw': 10} {u'price': 152.52, u'@number': u'5', u'mw': 9} i want output:
{u'price': 133.84, u'@number': u'1', u'mw': 10} {u'price': 139.09, u'@number': u'2', u'mw': 15} {u'price': 144.34, u'@number': u'3', u'mw': 10} {u'price': 148.53, u'@number': u'4', u'mw': 10} {u'price': 152.52, u'@number': u'5', u'mw': 9} the @number can between 1-7. best way approach problem? need max of @number , print many lines max value?
you can maintain set 1 have seen:
seen=set() data=[] e in input: if e["@number"] not in seen: seen.add(e["@number"]) data.append(e) >>> data [{u'price': 133.84, u'@number': u'1', u'mw': 10}, {u'price': 139.09, u'@number': u'2', u'mw': 15}, {u'price': 144.34, u'@number': u'3', u'mw': 10}, {u'price': 148.53, u'@number': u'4', u'mw': 10}, {u'price': 152.52, u'@number': u'5', u'mw': 9}] if data alway in order , lines complete once print max, do:
>>> input[0:max(int(e) e in (d['@number'] d in input))] [{u'price': 133.84, u'@number': u'1', u'mw': 10}, {u'price': 139.09, u'@number': u'2', u'mw': 15}, {u'price': 144.34, u'@number': u'3', u'mw': 10}, {u'price': 148.53, u'@number': u'4', u'mw': 10}, {u'price': 152.52, u'@number': u'5', u'mw': 9}]
Comments
Post a Comment