gpt4 book ai didi

Python:从字典到数组的转换

转载 作者:太空宇宙 更新时间:2023-11-04 07:59:29 24 4
gpt4 key购买 nike

我有一个 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(...)) 来获取它实际花费的时间。

关于Python:从字典到数组的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42882659/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com