我想用下一个字符替换字符串的每个字符,最后一个应该成为第一个.这是一个例子:
abcdefghijklmnopqrstuvwxyz
Run Code Online (Sandbox Code Playgroud)
应成为:
bcdefghijklmnopqrstuvwxyza
Run Code Online (Sandbox Code Playgroud)
是否可以在不使用替换功能的情况下进行26次?
您可以使用该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)