通过这段代码,我希望将字符串s中出现的所有点(.
)替换为恰好位于对称相对位置的字符。例如:如果s=a.bcdcbba
,则.
应替换为b
即:
i
位置的元素应该被len(s)-i-1
位置的元素替换。此函数为g....
,.g...
等情况提供了错误的输出。任何帮助?
def replacedots(s):
for i in range(0,len(s)):
if s[i]==".":
s=s.replace(s[i],s[len(s)-i-1],1)
return s
答案 0 :(得分:1)
@ chepner的方式:
def replacedots(s):
return ''.join(x if x !='.' else y for x, y in zip(s, reversed(s)))
替代方案:
def replacedots(s):
return ''.join(c if c != '.' else s[-i - 1] for i, c in enumerate(s))
当位置i
处的字符和位置len(s) - i - 1
处的字符为.
时,点将保持为点。
示例:强>
s = "foo.bar"