在Python中将列表值组合为字符串的好方法是什么

时间:2018-10-02 06:45:00

标签: python python-3.x

我有这样的消息来源

address = ['63-1','STREET APT #3F','','NY']

我想将此列表字符串化为“ 63-1 STREET APT#3F NY”

列表中的某些值通常为空。 最好的解决方法是什么?

2 个答案:

答案 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会将参数转换为列表(如果还没有的话),这会增加除列表以外的所有开销。