用Python从列表生成字典
我需要把一个列表转换成字典,具体要求是:列表中的奇数位置的元素作为字典的键,而偶数位置的元素作为字典的值。
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))
当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。