【问题标题】:Python: How to add a list to a named multidimensional arraysPython:如何将列表添加到命名的多维数组
【发布时间】:2019-01-03 17:41:43
【问题描述】:

在 PHP 中,您可以像这样轻松地创建和填充多维数组:

$points = array();
$points["Landmarks"]["Latitude"] = $some_array_containing_lat_values;
$points["Landmarks"]["Longitude"] = $some_array_containing_lon_values;

这样做的pythonic方式是什么?

我已经尝试过列表、字典和 numpy 数组,但都不起作用。使用未命名(编号)数组不是一种选择,因为它们是从结构和命名不一致的外部文件创建的,因此必须按名称从数组中检索数据,而不是按索引。

对不起,如果这是一个重复的问题,但我一直在寻找一整天都无济于事,而且我的时间已经不多了。

【问题讨论】:

  • 我不明白为什么字典不起作用?只需要分别发起不同级别:points = {}points['Landmarks'] = {}points['Landmarks']['Latitude'] = lat_array
  • points = {'Landmarks': {'Latitude': lat_array}}
  • 如果你想跳过points['Landmarks'] = {},你可以使用defaultdict -- points = defaultdict(dict),points['Landmarks']['Latitude'] = lat_array -- 代替
  • 快速浏览一下 PHP 文档表明 array 在某种意义上结合了 Python dictionarylist 的功能。在 Python 中,它们本质上不是多维的,但它们都可以包含字典或列表作为值,从而产生一种多维性。您可能需要向你们中的一些人展示 Python 试验并解释每个试验的问题所在。到目前为止,问题描述过于笼统。

标签: python arrays list numpy dictionary


【解决方案1】:

每当您想使用字符串作为关键字(例如“地标”)从数据结构中检索项目时,您都在寻找字典。

要拥有points["Landmarks"]["Latitude"] 的“多维”功能,您必须在另一个字典中拥有一个字典:

points = {'Landmarks': {'Latitude': lat_array, 'Longitude': lon_array}}

您也可以使用deafaultdict,它支持嵌套字典:

from collections import deafaultdict
points = defaultdict(dict)
points["Landmarks"]["Latitude"] = lat_array
points["Landmarks"]["Longitude"] = lon_array

你可以看到更多关于嵌套字典here

【讨论】:

  • 非常感谢,defaultdict 可以解决问题!也可以单独启动关卡。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-16
  • 1970-01-01
  • 2012-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多