1

我有 3 个列表,其中包含城镇、范围和部分(这些也是列表的名称)信息。例如,List Town 有 'N14'...'N20',List Range 有 'E4'...'E7' 并且 List Section 有 '01'...'36'。我希望能够将三个列表中的所有可能组合放入一个名为 AOI 的新列表中,例如“N14E401”....“N20E732”(727 种可能的组合)。这适用于已经编写且正在运行的 arcpy 脚本,该脚本将使用 raw_input 提示(上述组合),然后将其用作 AOI,将执行一些地理处理(不重要,因为脚本的那部分工作正常)。我只是想让 AOI 选择更容易,因为我现在设置它的方式,用户必须输入城镇,

提前致谢。我会把它放在 arcpy 特定区域,但它似乎更像是一个 python 问题而不是一个 arcpy 问题。我是一个完整的 python 菜鸟,并且一直在自学脚本,所以……要温柔、善良的读者。

4

2 回答 2

4

您要实现的是 3 个列表的笛卡尔积。这可以通过使用itertools.product轻松实现

偏离路线,你不会得到你所描述的 O/P,而是你会得到一个元组列表,但是再次加入元组列表将是微不足道的。对于您需要调用str.join的每个元组

您可能想要遍历元组,在增量追加的同时加入列表,或者更好地使用列表理解

于 2013-09-27T15:43:55.547 回答
0

为什么不只使用一些简单的for循环?

AOI = []
for t in Town:
    for r in Range:
        for s in Section:
            AOI.append(t + r + s)
于 2013-09-27T15:49:33.600 回答