def concatenate_cmdline_variables(src, names): """Find duplicate variable declarations on the given source list, and concatenate the values of those in the 'names' list.""" # the result list being constructed dest = [] # a map of variable name to destination list index positions = {} for item in src: i = item.find('=') if i > 0: # it's a variable name = item[:i] if name in names: # it's a known variable if name in positions: # already specified: concatenate instead of # appending it dest[positions[name]] += ' ' + item[i + 1:] continue else: # not yet seen: append it and remember the list # index positions[name] = len(dest) dest.append(item) return dest