Friday, 15 May 2015

python - making a dictionary from another dictionary by searching keys -



python - making a dictionary from another dictionary by searching keys -

i have dictionary looks this:

dictionary1={'orange':[red,yellow],'green':[blue,yellow],'purple'[red,blue]}

and want create new dictionary takes old 1 , turns like:

dictionary2={'red':[orange,purple],'blue':[green,purple],'yellow':[orange,green]}

so code should go through values, , create each 1 key old keys associated them set value (sorry wording's bit confusing)

this tried:

def makereversedictionary(): dictionary1 ={} dictionary1 = makedictionaryfromfile() dictionary2={} k, v in dictionary1.iteritems(): dictionary2.setdefault(v,[]).append(k) print (dictionary2)

and list objects unhashable error. think might happening is trying assign each value key twice (eg. yellow,yellow:[orange,green]) impossible. i'm not sure how prepare it.

the list objects unhashable error arises if seek , utilize whole list key. need iterate through list , utilize each item key.

dict1 = {'orange':['red','yellow'], 'green':['blue','yellow'], 'purple':['red','blue']} dict2 = {} k,vlist in dict1.iteritems(): # or dict1.items() in python3 v in vlist: dict2.setdefault(v,[]).append(k)

this produces dict2 as:

{'blue': ['purple', 'green'], 'yellow': ['orange', 'green'], 'red': ['orange', 'purple']}

edit:

an alternative setdefault utilize defaultdict(list) dict2.

python dictionary

No comments:

Post a Comment