如何用下一个字符串替换字符串中的字符?

Bou*_*TAC 3 python

我想用下一个字符替换字符串的每个字符,最后一个应该成为第一个.这是一个例子:

abcdefghijklmnopqrstuvwxyz
Run Code Online (Sandbox Code Playgroud)

应成为:

bcdefghijklmnopqrstuvwxyza
Run Code Online (Sandbox Code Playgroud)

是否可以在不使用替换功能的情况下进行26次?

Mar*_*ers 9

您可以使用该str.translate()方法让Python在一个步骤中替换其他字符.

使用该string.maketrans()函数将ASCII字符映射到其目标; 使用string.ascii_lowercase可以帮助你,因为它可以节省你自己输入所有字母:

from string import ascii_lowercase
try:
    # Python 2
    from string import maketrans
except ImportError:
    # Python 3 made maketrans a static method
    maketrans = str.maketrans 

cipher_map = maketrans(ascii_lowercase, ascii_lowercase[1:] + ascii_lowercase[:1])
encrypted = text.translate(cipher_map)
Run Code Online (Sandbox Code Playgroud)

演示:

>>> from string import maketrans
>>> from string import ascii_lowercase
>>> cipher_map = maketrans(ascii_lowercase, ascii_lowercase[1:] + ascii_lowercase[:1])
>>> text = 'the quick brown fox jumped over the lazy dog'
>>> text.translate(cipher_map)
'uif rvjdl cspxo gpy kvnqfe pwfs uif mbaz eph'
Run Code Online (Sandbox Code Playgroud)