String Joining from Iterable containing Strings and ( NoneType / Undefined )
python
Solution
You can use a comprehension to populate your iterable with a conditional checking that values have a truthy value.
your_list = [
'productX',
'deployment-package',
'1.2.3.4',
None,
None,
None,
]
'-'.join(item for item in your_list if item)
Problem
I am looking for a clean way to combine variables into a single string with a predefined separator. The problem is that sometimes some of these variables wont always exist or can be set to None. I cant have the separator string duplicate either. Example of problem: ``` # This works because I have all strings str('-').join(('productX', 'deployment-package', '1.2.3.4')) # 'productX-deployment-package-1.2.3.4' # But I have more args that might be None / or not exist like and that breaks str('-').join(('productX', 'deployment-package', '1.2.3.4', idontexist, alsonotexist)) str('-').join(('productX', 'deployment-package', '1.2.3.4', None, None, None)) # If I set the other missing variables to empty strings, I get duplicated joiners str('-').join(('productX', 'deployment-package', '1.2.3.4', '', '', '')) # 'productX-deployment-package-1.2.3.4---' ``` Is there a nice clean way to do this?