如何更改位于2倍数位置的所有字母?

我正在尝试使用字符更改 2 的倍数的字符/字母的位置*。但是,当我尝试运行它时,我收到一条错误消息

“str”对象不支持项目分配

def guess(x):
    i = 0
    while i < len(x):
        if i % 2 == 0:
            x[i] = "*"
            i = i + 1
    return x
    print(guess("today is a beautiful day"))

我怎样才能正确地做到这一点?

回答

字符串是不可变的,因此您需要构建一个新字符串来返回。我会使用enumeratejoin

>>> def guess(x):
...     return ''.join(c if i % 2 else '*' for i, c in enumerate(x))
...
>>> guess("today is a beautiful day")
'*o*a* *s*a*b*a*t*f*l*d*y'


以上是如何更改位于2倍数位置的所有字母?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>