我有一个从Excel工作表返回的行列表。我想对行中的每个项目使用替换函数,将'
替换为\'
然而,这不起作用:
row = map(replace('\'', "\\'"), row)
这只是一个错误,关于替换最多3个参数但只有2个。
有没有办法在python中使用map替换?
答案 0 :(得分:16)
map( lambda s: s.replace(...), row )
或使用列表理解
[s.replace(...) for s in row]
答案 1 :(得分:5)
这里的惯用Python可能是使用列表理解:
row = [ x.replace('\'', "\\'") for x in row ]
答案 2 :(得分:2)
要替换的第一个arg是一个函数;你所拥有的是对函数调用的尝试。
忘记地图。使用
row = [x.replace(something, other) for x in row]
答案 3 :(得分:2)
理论上,优化方式是
map(operator.methodcaller("replace", '\'', '\\\''), ...)
在实践中,列表理解可能更整洁。
如果您尝试转义字符串,可能有更好的方法(例如,re.escape
)。
答案 4 :(得分:1)
row = map(lambda x: x.replace('\'', "\\'"), row)
或者你可以使用re
的替换功能。