我有这样的消息来源
address = ['63-1','STREET APT #3F','','NY']
我想将此列表字符串化为“ 63-1 STREET APT#3F NY”
列表中的某些值通常为空。 最好的解决方法是什么?
答案 0 :(得分:4)
过滤掉空字符串,然后用join
用' '
过滤。
>>> address = ['63-1','STREET APT #3F','','NY']
>>> ' '.join(filter(None, address))
'63-1 STREET APT #3F NY'
filter(None, Iterable)
将滤除所有falsy值。在字符串列表中,只有空字符串是虚假的。
答案 1 :(得分:1)
我喜欢列表理解和生成器表达式:
>>> address = ['63-1','STREET APT #3F','','NY']
>>> ' '.join(s for s in address if s)
'63-1 STREET APT #3F NY'
>>> ' '.join([s for s in address if s])
'63-1 STREET APT #3F NY'
但是请注意,使用列表理解是最快的方法,因为str.join
会将参数转换为列表(如果还没有的话),这会增加除列表以外的所有开销。