将数组/列表转换为字典的有效方法是什么?

时间:2015-09-24 23:17:22

标签: python arrays performance dictionary

我试图以最有效(意味着最快)的方式将数组信息转换为列表。

我有一个名为node_map的列表,我希望将其作为字典的键,然后是我想与node_map关联的node_coordinates(node_coords_tmp)的3D数组。

Node_map看起来像:

[1,2,3,4,5]

最初打印时报告Node_coords为:

(<exodus.c_double_Array_8352100 object at 0x2c2d8c0>, <exodus.c_double_Array_8352100 object at 0x2c2d5f0>, <exodus.c_double_Array_8352100 object at 0x2c2d560>)

最初我填写了这样的词典:

    for ct,i in enumerate(node_map):
        node_coords[i] = [node_coords_tmp[0][ct],node_coords_tmp[1][ct],node_coords_tmp[2][ct]]

这就是我想要的,但是比我想要处理的阵列的大小要慢。有没有更好的方法来使用numpy或不同的形式?感谢。

1 个答案:

答案 0 :(得分:5)

尝试理解dict ..

node_coords = { i: (node_coords_tmp[0][ct],
                    node_coords_tmp[1][ct],
                    node_coords_tmp[2][ct]) for ct, i in enumerate(node_map) }