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

时间:2016-06-22 14:45:27

标签: python

由于我最近开始了一个新项目,我陷入了“在你编码之前思考”的阶段。我总是做基本的编码,但我真的认为我现在需要仔细规划如何组织我的脚本产生的结果。

这基本上很简单:我有一堆卫星数据,我正在从谷歌地球引擎中提取,包括不同的传感器,不同的采集模式等。我想做的是循环查看“传感器 - acquisition_mode“成对,请求数据,进行更多处理,最后将其保存到变量或文件中。

假设我有以下示例:

sensors = ['landsat','sentinel1']
sentinel_modes = ['ASCENDING','DESCENDING']
sentinel_polarization = ['VV','VH']

最后,我希望有一些嵌套的数据结构,在最高级别具有元素'landsat'和'sentinel1';在'landsat'下我会有时间和价值矩阵;在'sentinel1'下我会有不同的模式,然后是数据矩阵。

我一直在考虑列表,字典或具有属性的类,但我真的无法下定决心,因为我没有那么多的经验。 在这个阶段,在正确的方向上一点帮助将非常感谢!

1 个答案:

答案 0 :(得分:4)

  • 列表:不要将列表用于嵌套和复杂的数据结构。你只是用自己编写的脚码拍摄自己将专门针对你正在使用的格式,任何改变或添加都将是残酷的实现。
  • 词典:Aren不好 - 他们会很好地嵌套,你可以使用一个字典,它的值是一个字典来保存关于键的命名信息。这可能是最简单的选择。
  • 类:如果您需要很多行为,那么类对此非常有用 - 您希望它的字符串以某种方式表示,您希望能够使用原始运算符来实现某些功能,或者你只是想使代码更具可读性或可重用性。

从那里,你可以选择 - 如果你想要通过额外的代码(它对你有好处)将它们写成类,那就去做吧!否则,词典会让你到达你需要去的地方。值得注意的是,字典中唯一不能做的就是如果你在字典中key级别有两个同名的东西(Dicts不要重复)。