I was reading the following topic: Make dictionary from list with python
The initial problem is to transform the tuple (1,'a',2,'b',3,'c') into the dictionary {1: 'a', 2: 'b', 3: 'c'}. Many interesting solutions were given, including the following two:
Solution 1:
dict(x[i:i+2] for i in range(0, len(x), 2))
Solution 2:
dict(zip(*[iter(val_)] * 2))
In solution 1, why bother creating the actual list with range? Wouldn't xrange( 0, len(x), 2 ) be more memory efficient? Same question for solution 2: zip creates an actual list. Why not using itertools.izip instead?