use*_*172 24 python replace list
我有:
d = [1,'q','3', None, 'temp']
Run Code Online (Sandbox Code Playgroud)
我想将None值替换为'None'或任何字符串
预期效果:
d = [1,'q','3', 'None', 'temp']
Run Code Online (Sandbox Code Playgroud)
尝试替换字符串和for循环但我得到错误:
TypeError: expected a character buffer object
Run Code Online (Sandbox Code Playgroud)
Mar*_*ers 54
使用简单的列表理解:
['None' if v is None else v for v in d]
Run Code Online (Sandbox Code Playgroud)
演示:
>>> d = [1,'q','3', None, 'temp']
>>> ['None' if v is None else v for v in d]
[1, 'q', '3', 'None', 'temp']
Run Code Online (Sandbox Code Playgroud)
注意is None测试以匹配None单例.
您可以使用以下函数简单地使用所有项目map并将其转换为字符串:str
map(str, d)
#['1', 'q', '3', 'None', 'temp']
Run Code Online (Sandbox Code Playgroud)
如果您只想转换None值,可以执行以下操作:
[str(di) if di is None else di for di in d]
Run Code Online (Sandbox Code Playgroud)