包含字符串的列表字典

2024-04-20 08:55:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用一个返回字符串列表的方法。比如:

a=get_all_elements()

我想利用“a”中的字符串并创建一个列表字典。比如:

dict = { element1, element2, element3}

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

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

我该怎么做?你知道吗


Tags: 方法字符串利用列表get字典elementsall
2条回答

此代码:

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}

您可以使用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']

相关问题 更多 >