如何将我的元组转换为dict?

时间:2015-10-14 13:04:14

标签: python

这是我想要从元组转换为dict的输出:

(198, [u'http://domain.com', u'http://domain2'])
(199, [u'http://domain3.com/', u'http://www.domain4'])
它应该像:

(198: [u'http://domain.com', u'http://domain2']),
(199: [u'http://domain3.com/', u'http://www.domain4'])

我在for循环中尝试了各种各样的事情:

for item in opa.items():        
    aa = {(y:[x]) for y,[x] in item}

但总是得到同样的错误:

  

TypeError:' int'对象不可迭代

更好的解决方案是在"创建输出"(现在使用)

创建dict而不是元组
opa = defaultdict(list)
a3 = [model.objects.get(keyword=keyword).url]
for k in a3:
    opa[keyword].append(k)

我试过这样的事情,但确实没有添加'要键入的域列表...它只添加了一个:

opa = defaultdict(dict)
a3 = [model.objects.get(keyword=keyword).url] # returns list of urls
for k in a3:
    opa[keyword] = [k]

2 个答案:

答案 0 :(得分:2)

如果要将表单(键,值)的元组列表转换为字典,可以使用字典理解:

{x:y for (x, y) in tuples}

答案 1 :(得分:-1)

这就是诀窍:

opa = dict(opa)

for item, k in opa.items():        
    aa = {item:k}