尝试将来自3个列表的元素(连接)组合成一个新列表

时间:2013-09-27 15:40:47

标签: python list append

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

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

2 个答案:

答案 0 :(得分:4)

您要实现的目标是3个列表中的Cartesian product。使用itertools.product

可以轻松实现这一点

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

您可能想要循环遍历元组,在incrementally appending 时加入列表,或者更好地使用List comprehension

答案 1 :(得分:0)

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

AOI = []
for t in Town:
    for r in Range:
        for s in Section:
            AOI.append(t + r + s)