Diez B. Roggisch wrote: > py wrote: > >> I have two lists which I want to use to create a dictionary. List x >> would be the keys, and list y is the values. >> >> x = [1,2,3,4,5] >> y = ['a','b','c','d','e'] >> >> Any suggestions? looking for an efficent simple way to do this...maybe >> i am just having a brain fart...i feel like this is quit simple. > > dict(zip(x,y)) > > Diez I'd even suggest using izip (from itertools), it's often much faster than zip (end result is the same).
Demo: >>> from itertools import izip >>> l1 = range(5000) >>> l2 = range(5000, 10000) >>> from timeit import Timer >>> t1 = Timer("dict(zip(l1, l2))", "from __main__ import l1, l2") >>> t2 = Timer("dict(izip(l1, l2))", "from __main__ import l1, l2, izip") >>> min(t1.repeat(5, 10000)) 17.989041903370406 >>> min(t2.repeat(5, 10000)) 10.381146486494799 >>> 42% speed gain from using izip instead of zip (memory was not an issue during the test, machine had 1.3Gb of available ram) -- http://mail.python.org/mailman/listinfo/python-list