# Loop on Union process [ArcGis10/Python]

I work on ArcGIS 10 and I'd like to realize multiple unions between layers. But that union task is a little bit particular. Indeed as the beginning of my code shows, I have seven layers (these layers have a specific classification).

import arcpy from arcpy import env workspace_2 = "V:/DONNEES/1_referentiels/mnt/1_france/1_dep_17/ign/litto3d/Litto3D_livraison_2011_10_24/traitements_lienss/tests/Workspace_chev/" M0 = workspace_2 + "0.shp" M1 = workspace_2 + "1.shp" M2 = workspace_2 + "2.shp" M3 = workspace_2 + "3.shp" M4 = workspace_2 + "4.shp" M5 = workspace_2 + "5.shp" M6 = workspace_2 + "6.shp" M7 = workspace_2 + "7.shp"

And my goal is to make an union between : M0 - M4, M1 - M5, M2 - M6 and so on. That is to say the union have to made **every four layers**. So I decided to make a loop but I must admit I'm completely lost. I tried that but it didn't work :

Union_1 = {"M0":M0, "M1":M1, "M2":M2, "M3":M3} Union_2 = {"M4":M4, "M5":M5, "M6":M6, "M7":M7} for i in Union_1: for j in Union_2: InFeatures = [Union_1[i], Union_2[j]] arcpy.Union_analysis (InFeatures, i + "_" + j + ".shp", "NO_FID", 0.0003, "") print "ok"

Could you help me to loop that union process ?

## Answers

One way this loop could be done is the following

r = [m0, m1, m2, ..... , mN] for n in range(0, len(r), 4): InFeatures = r[n:n+4] arcpy.Union_analysis (InFeatures, str(n) + "_" + str(n+4) + ".shp", "NO_FID", 0.0003, "")

This is if you are always looking to perform union_analysis on four sequential shape files.