我有一个元组序列
我正在使用
我尝试使用
我查看了这个类似的问题,但是我的输入格式和期望的输出格式有很大的区别。
(对于那些想知道“为什么要更改这个完全可接受的代码?”的人:我感兴趣的是寻找使用Python内置函数和模块的替代方法,更多地是作为学术练习,而不是故意避免一些功能性和易懂的东西。)
itemList
,格式为(key, value)
,我想将列表中的项目转换为格式为{key : [value, ..], ..}
的dict
。一个特定的key
值可能会在itemList
中多次出现,并且具有匹配或新的value
,我也想记录这些值(这就是为什么简单地使用dict(itemList)
不起作用的原因)。我正在使用
Python2.7.9
,并寻找缩小此代码的方法:newDict = dict()
for k,v in itemList: # itemList contains the tuples described above.
if k in newDict:
newDict[k].append(v)
else:
newDict[k] = [v]
我尝试使用
map()
和list-comprehensions
与newDict.update(..)
结合使用,但都没有达到预期效果。我查看了这个类似的问题,但是我的输入格式和期望的输出格式有很大的区别。
(对于那些想知道“为什么要更改这个完全可接受的代码?”的人:我感兴趣的是寻找使用Python内置函数和模块的替代方法,更多地是作为学术练习,而不是故意避免一些功能性和易懂的东西。)
dict.get(SomeThing, dict())
这种方式,但我没注意到setdefault
!+1 我也应该看看collections
,因为我经常看到它,但已经拖了一段时间了... - Augusta