如何在 Python 中创建嵌套数据结构?

Kri*_*tof 0 python

由于我最近开始了一个新项目,因此我陷入了“在编写代码之前先思考”阶段。我一直在做基本的编码,但我真的认为我现在需要仔细计划我应该如何组织我的脚本产生的结果。

它本质上非常简单:我有一堆从 Google Earth Engine 中提取的卫星数据,包括不同的传感器、不同的采集模式等。我想做的是遍历“sensor-acquisition_mode”对的列表,请求数据,做一些更多的处理,最后将它保存到一个变量或文件中。

假设我有以下示例:

sensors = ['landsat','sentinel1']
sentinel_modes = ['ASCENDING','DESCENDING']
sentinel_polarization = ['VV','VH']
Run Code Online (Sandbox Code Playgroud)

最后,我想要某种嵌套数据结构,在最高级别具有元素“landsat”和“sentinel1”;在“landsat”下,我会有一个时间和价值矩阵;在“哨兵1”下,我将拥有不同的模式,然后还有数据矩阵。

我一直在考虑列表、字典或带有属性的类,但我真的拿不定主意,因为我也没有那么多经验。在这个阶段,在正确方向上的一点帮助将不胜感激!

Del*_*oth 5

  • 列表:不要将列表用于嵌套和复杂的数据结构。您只是在自己编写的脚码中进行自我测试——您编写的代码将专门针对您正在使用的确切格式,并且任何更改或添加都将难以实施。
  • 字典:不错 - 它们会很好地嵌套,您可以使用其值为字典的字典来保存有关键的命名信息。这可能是最简单的选择。
  • 类:如果你需要很多行为来使用类,类真的非常有用 - 你希望它的字符串以某种方式表示,你希望能够使用原始运算符来实现某些功能,或者你只是想要使代码更具可读性或可重用性。

从那里开始,这就是您的全部选择 - 如果您想通过将它们编写为类的额外代码(这对您有好处),那就去做吧!否则,字典会带你去你需要去的地方。值得注意的是,字典唯一不能做的事情是,如果您有两件事应该key在字典中具有相同名称的级别(字典不会重复)。