Home > Mobile >  python add static string to all items in set
python add static string to all items in set

Time:08-12

I have the following set in python (its actually one set item):

  product_set = {'Product, Product_Source_System, Product_Number'} 

I want to add a static prefix (source.) to all the comma seperated values in the set, so I get the following output:

 {'source.Product, source.Product_Source_System, source.Product_Number'} 

I tried with a set comprehension, but it doesn't do the trick or I'm doing something wrong. It only prefixes the first value in the set.

{"source."   x for x in set}

I know sets are immutable. I don't need a new set, just output the new values.

Anyone that can help?

Thanks in advance

CodePudding user response:

Edit: Splitting the initial long string into a list of short strings and then (only if required) making a set out of the list:

s1 = set('Product, Product_Source_System, Product_Number'.split(', '))

Constructing a new set:

s1 = {'Product', 'Product_Source_System', 'Product_Number'}
s2 = {"source."   x for x in s1}

Only printing the new strings:

for x in s1:
    print("source."   x)

CodePudding user response:

Note: The shown desired result is a new set with updated comma-seperated values. Further down you mentioned: "I don't need a new set, just output the new values". Which one is it? Below an option to mimic your desired result:

import re

set =  {'Product, Product_Source_System, Product_Number'}
set = {re.sub(r'^|(,\s*)', r'\1source.', list(set)[0])}
# set = {'source.'  list(set)[0].replace(', ', ', source.')}
print(set)

Prints:

{'source.Product, source.Product_Source_System, source.Product_Number'}
  • Related