Python - 字符串中的字符数增加1

bra*_*jul 7 python chr ord

我已经在python中搜索了如何做到这一点,我找不到答案.如果你有一个字符串:

>>> value = 'abc' 
Run Code Online (Sandbox Code Playgroud)

如何将字符串中的所有字符增加1?所以我正在寻找的输入是:

>>> value = 'bcd' 
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用ord和chr用一个角色做到这一点:

>>> value = 'a'
>>> print (chr(ord(value)+1)) 
>>> b
Run Code Online (Sandbox Code Playgroud)

ord()chr()只能采取一个字符.如果我使用上面的相同语句,并且字符串包含多个字符.我会得到错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: ord() expected a character, but string of length 3 found 
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

gtl*_*ert 11

您可以使用生成器表达式,''.join()如下所示:

In [153]: value = 'abc'

In [154]: value_altered = ''.join(chr(ord(letter)+1) for letter in value)

In [155]: value_altered
Out[155]: 'bcd'
Run Code Online (Sandbox Code Playgroud)

生成器迭代letter字符串中的每个字符串,value并使用chr(ord(letter)+1)您问题中建议的方法将其递增1 .然后它''.join()用于将生成器中的字母转换回字符串.


Ale*_*lex 8

由于gtllambert打败了我原来的答案,我发布了一个替代解决方案.您还可以使用map和lambda表达式来实现相同的目的.lambda表达式使用chrord将每个字符递增1,chr用于将其转换回字符.

value = 'abc'
''.join(map(lambda x:chr(ord(x)+1),value))
Run Code Online (Sandbox Code Playgroud)