使用python从列表中创建字典

时间:2010-04-08 02:20:43

标签: python list dictionary

我需要将列表转换为字典,如下所示。 奇数元素具有键,偶数元素具有值。

x = (1,'a',2,'b',3,'c') - > {1: 'a', 2: 'b', 3: 'c'}

def set(self, val_): 
    i = 0 
    for val in val_: 
        if i == 0: 
            i = 1 
            key = val 
        else: 
            i = 0 
            self.dict[key] = val 

获得相同结果的更好方法是什么?

ADDED

i = iter(k)
print dict(zip(i,i))

似乎正在运作

5 个答案:

答案 0 :(得分:34)

dict(x[i:i+2] for i in range(0, len(x), 2))

答案 1 :(得分:11)

以下是 Python3 使用dict comprehensions

的几种方法
>>> x = (1,'a',2,'b',3,'c')
>>> {k:v for k,v in zip(*[iter(x)]*2)}
{1: 'a', 2: 'b', 3: 'c'}
>>> {x[i]:x[i+1] for i in range(0,len(x),2)}
{1: 'a', 2: 'b', 3: 'c'}

答案 2 :(得分:10)

dict(zip(*[iter(val_)] * 2))

答案 3 :(得分:10)

>>> x=(1,'a',2,'b',3,'c')
>>> dict(zip(x[::2],x[1::2]))
{1: 'a', 2: 'b', 3: 'c'}

答案 4 :(得分:3)

x = (1,'a',2,'b',3,'c') 
d = dict(x[n:n+2] for n in xrange(0, len(x), 2))
print d