Skip to main content
 首页 » 编程设计

Python:从字典到数组的转换

2025年05月04日15jirigala

我有一个 Python 字典(比如 D),其中每个键都对应于某个预定义的列表。我想创建一个包含两列的数组,其中第一列对应于字典 D 的键,第二列对应于相应列表中元素的总和 .例如,如果,

D = {1: [5,55], 2: [25,512], 3: [2, 18]} 

那么,我希望创建的数组应该是,

A = array( [[1,60], [2,537], [3, 20]] ) 

我在这里给出了一个小例子,但我想知道实现最快的方法。目前,我正在使用以下方法:

A_List = map( lambda x: [x,sum(D[x])] , D.keys() ) 

我意识到我的方法的输出是一个列表的形式。我可以在另一个步骤中将其转换为数组,但我不知道这是否是一种快速方法(我认为使用数组会比使用列表更快)。如果我能知道实现此目标的最快方法是什么,我将非常感激。

请您参考如下方法:

您可以使用列表理解来创建所需的输出:

>>> [(k, sum(v)) for k, v in D.items()]   # Py2 use D.iteritems() 
[(1, 60), (2, 537), (3, 20)] 

在我的电脑上,它比 map(lambda:.., D) 版本快 50%。
注意:在 py3 上,map 只返回一个生成器,因此您需要 list(map(...)) 来获取它实际花费的时间。