I have a script that a co-worker made that I'm trying to utilize. What I have is two types of layers (points/lines) with the same name's points (A, B, C) and lines (A, B, C). The Script will group the layers into groups with the same name. The problem is it will also duplicate the layers, so I'll have a list of grouped layers and non-grouped layers. How do I keep the script from duplicating the layers?
import arcpy
import random
from itertools import groupby
from collections import defaultdict
aprx = arcpy.mp.ArcGISProject("CURRENT")
act_map = aprx.activeMap
map1 = aprx.listMaps("Map1")
layer = act_map.listLayers()
lyr_list = []
for position in range(0, len(layer)):
lyr_name = layer[position].name
lyr_list.append(lyr_name)
all_indexes = []
for i in range(0, len(layer)):
all_indexes.append(layer[i])
lyr_list2 = all_indexes
merge_lyr_list = defaultdict(list)
for key, value in zip(lyr_list, lyr_list2):
merge_lyr_list[key].append(value)
overall_lyr_list = merge_lyr_list
mykeys = list(overall_lyr_list.keys())
mykeys.sort()
sorted_lyr_list = {i: overall_lyr_list[i] for i in mykeys}
layer = act_map.listLayers()
grplayer = act_map.listLayers("New Group Layer")[0]
for group_name, layers in sorted_lyr_list.items():
group = act_map.addLayer(grplayer)[0]
group.name = group_name
for lyr in layers:
act_map.addLayerToGroup(group, lyr)