Vincent Gulinao wrote: > is there any simple syntax for joining strings such that if any (or all) > of the params is white space or None, it won't be included in the > resulting string? > > e.g. str1, str2, str3 = "foo", "bar", None, if delimiter is " " would > result to "foo bar"; str1, str2 = None, None would result to None.
If all your values are in a list, use a list comprehension to strip out the empty ones and join() to make a string: >>> def joinNoWs(lst): ... lst = [s for s in lst if s and s.strip() ] ... if lst: ... return ' '.join(lst) ... return None ... >>> joinNoWs( [ "foo", "bar", None ] ) 'foo bar' >>> joinNoWs( [ None, None ] ) If it's OK to return an empty string instead of None when all the inputs are empty, you can do this in one line: >>> def joinNoWs(lst): ... return ' '.join( [s for s in lst if s and s.strip()] ) ... >>> joinNoWs( [ None, None ] ) '' >>> joinNoWs( [ "foo", "bar", None ] ) 'foo bar' Kent -- http://www.kentsjohnson.com _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor