我想创建一个字典,其中相同的键可以有一个数组中的不同值。在过去,我在列表的每个列表上创建了一个包含位置的字典,但是我发现了一个错误,即同一个键可能具有多个值,并且会破坏主代码。 即。在python中使用defaultdict 2.7
my_array = [['a','b','c'],['a','e','d'],['f','g','h']]
my dict = dict([p[0], p[2]] for p in my_array)
my dict = {'a': 'c', 'f': 'h'}
What I need is:
my_dict = {'a': ['c','d'], 'f': 'h'}
我试着用defaultdict,但到目前为止我得到TypeError异常。我曾尝试初始化它作为一个字符串defaultdict(STR)和一个列表defaultdict(列表),但没有成功
my_dict = defaultdict((my_dict[p[0]].append(p[2])) for p in my_array)
or
my_dict = defaultdict(([p[0], p[2]]).append(p[2]) for p in a_array)
始终得到TypeError异常,建议好吗?
你需要的是[multidict](https://pypi.python.org/pypi/multidict)。 –
请不要为此使用multidict。下面提供的解决方案正是您所需要的。 – idjaw