How to order the dictionary from list in python -
i have things
mydict = ordereddict({'a':'1', 'd':'2','f':'1', 'i':'2','m':'1', 'k':'2'}) now suppose have list like
l = [i,k]
so want order mydict based on list l. i,k first 2 items , other items stay in original order
i want in minimal coding possible. in python
using unique_everseen recipe itertools.
def unique_everseen(iterable, key=none): "list unique elements, preserving order. remember elements ever seen." # unique_everseen('aaaabbbccdaabbb') --> b c d # unique_everseen('abbccad', str.lower) --> b c d seen = set() seen_add = seen.add if key none: element in ifilterfalse(seen.__contains__, iterable): seen_add(element) yield element else: element in iterable: k = key(element) if k not in seen: seen_add(k) yield element >>> itertools import * >>> lis = ["i","k"] >>> mydict = ordereddict([('a', '1'), ('d', '2'), ('f', '1'), ('i', '2'), ('k', '2'), ('m', '1')]) # list used in creating ordereddict, dict lose initial order >>> ordereddict((key,mydict[key]) key in unique_everseen(chain(lis,mydict))) ordereddict([('i', '2'), ('k', '2'), ('a', '1'), ('d', '2'), ('f', '1'), ('m', '1')])
Comments
Post a Comment