我正在阅读以下主题:使用Python从列表创建字典
最初的问题是将元组
解决方案1:
解决方案2:
在解决方案1中,为什么要使用
(1,'a',2,'b',3,'c')
转换为字典 {1: 'a', 2: 'b', 3: 'c'}
。有许多有趣的解决方案,包括以下两种:解决方案1:
dict(x[i:i+2] for i in range(0, len(x), 2))
解决方案2:
dict(zip(*[iter(val_)] * 2))
在解决方案1中,为什么要使用
range
创建实际列表?使用xrange(0, len(x), 2)
是否更节省内存?同样的问题也适用于解决方案2: zip
创建了一个实际的列表。为什么不使用itertools.izip
呢?
range
是一个生成器(Python 2中的range
用xrange
替代)。同样地,在Python 3中,zip
也是一个生成器。 - Yuushi