Hi, psykeedelik wrote:
On Mar 5, 6:01 pm, Tino Wildenhain <t...@wildenhain.de> wrote:Piet van Oostrum wrote:Andre Engels <andreeng...@gmail.com> (AE) wrote:AE> On Wed, Mar 4, 2009 at 11:02 AM, lone_eagle <icym...@gmail.com> wrote:Can someone suggest a easy method to do the inverse of dict(zip(x,y)) to get two lists x and y? So, if x and y are two lists, it is easier to make a dictionary using d = dict(zip(x,y)), but if I have d of the form, d = {x1:y1, x2:y2, ...}, what is there any trick to get lists x = [x1, x2, ...] and y = [y1, y2, ...]AE> x = d.keys() AE> y = [d[e] for d in x] AE> y = d.values() might also work, but I am not sure whether d.keys() and AE> d.values() are guaranteed to use the same order.Yes, they are if the dictionary is not changed in the meantime (not even inserting and removing the same thing). See the library documentation, section dict.Still I'd like to see an application where this really matters (that keys() and values() match in order)Tino smime.p7s 4KViewDownloadFirst, thanks to all the guys who posted replies to my query!! And then, just as an example to what Tino raised ... I usually get properties that I compute, in a dictionary like property = [key1: val1, key2:val2, ...] and then I usually want to plot them in pylab, which AFAIK requires x and y as lists for the plot argument. Then I need to get the lists [key1, key2, ...] and [val1, val2, ...]. And now I wonder if there a more efficient way doing what I described above!! ;)
I didn't check but I don't believe that. Usually x/y plots base on tuples for (x,y) and that's exactly what items() would deliver.
Regards Tino
smime.p7s
Description: S/MIME Cryptographic Signature
-- http://mail.python.org/mailman/listinfo/python-list