包含字符串的列表字典

时间:2014-02-21 11:46:47

标签: python list dictionary

我正在使用一个返回字符串列表的方法。类似的东西:

a=get_all_elements()

我想在“a”中使用字符串并创建列表字典。类似的东西:

dict = { element1, element2, element3}

这里同样,element1是一个字符串列表,它将由另一个返回字符串列表的方法填充。例如:

data = {'element1': [string1, string2, string3], 'element2': [string1, string2, string3]...}

我该怎么做?

2 个答案:

答案 0 :(得分:1)

此代码:

a = get_all_elements()
mydict = {ai:[] for ai in a}

将创建一个包含空列表的字典:

{'element1':[], 'element2':[], 'element3':[]}

然后你可以通过附加你的字符串填充它:

mydict['element1'].append('stringN')

或创建列表:

mydict['element1'] = [s for s in create_strings()]

如果此函数将元素作为参数,则可以执行以下操作:

mydict = {ai:[s for s in create_strings(ai)] for ai in a}

答案 1 :(得分:0)

您可以使用defaultdict对象,请参阅http://docs.python.org/2/library/collections.html#collections.defaultdict

>>> keys = ['a','b','c']
>>> values = [['x','y','z'], ['d','e','f'], ['o','p','q']]
>>> from collections import defaultdict
>>> x = defaultdict(list)
>>> for i,j in zip(keys, values):
...     for k in j:
...             x[i].append(k)
... 
>>> for i in x:
...     print i, x[i]
... 
a ['x', 'y', 'z']
c ['o', 'p', 'q']
b ['d', 'e', 'f']