使用两个列表将字典转换为包含python中值列表的字典

时间:2016-04-19 17:23:59

标签: python list dictionary

我有两个列表,如

dbFileString.Substring(dbFileString.IndexOf("<Tables>")+"<Tables>".Length, dbFileString.Length-("</Tables>".Length) - ("Tables".Length));

我想创建一个字典,将值保存为列表,如

['a','b','c']
['x','y','z']

我正在使用这样但是给了我不在列表中的值:

{'a':['x'],'b':['y'],'c':['z']}

请建议。

5 个答案:

答案 0 :(得分:1)

这会为select11

中的每个元素创建一个列表
dictionary = dict(zip(out_head,
                        ([x] for x in select11)
                        ))

或者(@kpie让我想起了dict-comprehension符号):

dictionary = {k:[v] for k,v in zip(out_head, select11)}

答案 1 :(得分:0)

在压缩它们之前,尝试在第二个列表中的每个元素上调用list

x, y = ['a','b','c'], ['x','y','z'] 
new = dict(zip(x, [list(i) for i in y]))
print new

答案 2 :(得分:0)

我认为您正在寻找的语法是这样的。

a = [1,2,3]
b = ['a','b','c']
d = {k:[v] for (k,v) in [(q,w) for q in a for w in b]}

答案 3 :(得分:0)

  
    
      

a = ['a','b','c']       b = ['x','y','z']

             

dict(zip(a,map(list,b)))

    
  

地图(列表)将列表b的每个成员包装在自己的列表中,这就是你想要的。

答案 4 :(得分:0)

使用此功能。

 keys = ['a', 'b', 'c']
 values = ['x', 'y', 'z']
 dictionary = dict(zip(keys, list(values)))