On Jan 11, 9:54 am, Chris <[EMAIL PROTECTED]> wrote: > On Jan 9, 12:34 pm, cesco <[EMAIL PROTECTED]> wrote: > > > Hi, > > > say I have a string like the following: > > s1 = 'hi_cat_bye_dog' > > and I want to replace the even '_' with ':' and the odd '_' with ',' > > so that I get a new string like the following: > > s2 = 'hi:cat,bye:dog' > > Is there a common recipe to accomplish that? I can't come up with any > > solution... > > > Thanks in advance > > Cesco > > A simple list comprehension is all that is needed. > > input_string = 'hi_cat_bye_dog'.split('_') > output_string = ','.join([':'.join(input_string[i:i+2]) for i in > xrange(0,len(input_string),2)])
I tried your example with my extended input cases to get: def altrep6(s): input_string = s.split('_') return ','.join([':'.join(input_string[i:i+2]) for i in xrange(0,len(input_string),2)]) altrep6.author="Chris" Giving output: ## Program by: Chris '' RETURNS '' '1' RETURNS '1' '2_' RETURNS '2:' '3_4' RETURNS '3:4' '5_6_' RETURNS '5:6,' '7_8_9' RETURNS '7:8,9' '10_11_12_' RETURNS '10:11,12:' '13_14_15_16' RETURNS '13:14,15:16' '17_18_19_20_' RETURNS '17:18,19:20,' '_' RETURNS ':' '_21' RETURNS ':21' '_22_' RETURNS ':22,' '_23_24' RETURNS ':23,24' '_25_26_' RETURNS ':25,26:' '_27_28_29' RETURNS ':27,28:29' '_30_31_32_' RETURNS ':30,31:32,' '_33_34_35_36' RETURNS ':33,34:35,36' '__' RETURNS ':,' '___' RETURNS ':,:' '____' RETURNS ':,:,' '_____' RETURNS ':,:,:' - Paddy. -- http://mail.python.org/mailman/listinfo/python-list