用Python从列表生成字典

29 投票
5 回答
84529 浏览
提问于 2025-04-15 21:21

我需要把一个列表转换成字典,具体要求是:列表中的奇数位置的元素作为字典的键,而偶数位置的元素作为字典的值。

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 

有没有更好的方法来得到相同的结果呢?

补充说明

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

看起来是有效的

5 个回答

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

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

12

这里有几种使用Python3字典推导式的方法

>>> 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'}
41
dict(x[i:i+2] for i in range(0, len(x), 2))

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

撰写回答