你好我开始学习Python,但我遇到了一个问题。我想用空格(“”)替换列表中的每个空字符串。
例如,如果我用function(['', 'x', 'x', '', '', 'y', 'y', '', 'a'])
调用该函数,我想返回一个字符串' xx yy a'
。
def function(a):
for i in a:
if i == None:
a[i] = " "
string = "".join(a)
return string
答案 0 :(得分:5)
使用生成器表达式而不是短路or
:
def function(a):
return ''.join(char or ' ' for char in a)
如果字符是非空字符串,它将按原样使用。否则,将使用空格。
答案 1 :(得分:1)
替换None,False和空字符串
>>> a = ['','11',None,'22',False]
>>> b=[elem if elem else " " for elem in a]
>>> ''.join(b)
' 11 22 '
>>>
请注意,您的代码不会替换''as''不是None
>>>''==None
False
>>>