Steve Holden wrote: > [EMAIL PROTECTED] wrote: > > Hello: > > I have next dictionaries: > > a={'a':0, 'b':1, 'c':2, 'd':3} > > b={'a':0, 'c':1, 'd':2, 'e':3} > > I want to put in a new dictionary named c all the keys that are in b > > and re-sequence the values. The result I want is: > > c={'a':0, 'c':1, 'd':2} > > How can I do this with one line of instruction? > > > You can't. Dictionaries aren't ordered collections. > > > I attempted the next but the output is not the expected: > > c=dict([(k,v) for v,k in enumerate(a) if b.has_key(k)]) > > erroneously (for me) gets: > > {'a': 0, 'c': 2, 'd': 3} > > > > Thanks for your help. > > In Python {'a':0, 'c':1, 'd':2} == {'a': 0, 'c': 2, 'd': 3}
Careful there, chief. The Python interpreter disagrees: >>> {'a':0, 'c':1, 'd':2} == {'a': 0, 'c': 2, 'd': 3} False I inferred that by "re-sequencing", the OP meant the keys in the new dict were to be associated with a new range of integer values (probably specifically the key's index in a sorted list of keys). It was an unfortunate choice of words, as sequencing has a pretty specific meaning in Python. Carl Banks -- http://mail.python.org/mailman/listinfo/python-list