考虑以下简化情况:
lol = [['John','Polak',5,3,7,9],
['John','Polak',7,9,2,3],
['Mark','Eden' ,0,3,3,1],
['Mark','Eden' ,5,1,2,9]]
基于两个参数列表的pythonic列表转换效率会是什么
^{pr2}$实际上,任何其他的数据结构也可以,只要我有正确的层次结构。例如,我想到了下面的字典结构,但是创建它似乎不够高效,而且内存可能比lolo解决方案高。在
dolol = {('John','Polak'):[[5,3,7,9],[7,9,2,3]],
('Mark','Eden') :[[0,3,3,1],[5,1,2,9]]}
列表:
字典:
^{pr2}$由于
itertools.groupby
在连续匹配上工作,所以它假定输入排序(lol
)。在为了补充delnan的答案,可以使用一个相当于Python 2的工具:
如果字典是可接受的,则此代码将创建一个:
注意,这需要Python3(extended iterable unpacking)。对于python2,使用
^{pr2}$您可以折叠变量以保存行。在
相关问题 更多 >
编程相关推荐