gpt4 book ai didi

python - 如何以 Pythonic 方式将 "ABCD…"转换为 "CDEF…"?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:29:41 25 4
gpt4 key购买 nike

例如,我有一个 lst = "ABCXYZ",我希望输出为 "CDEZAB"

到目前为止我想到的最好的方法是:

"".join(chr((ord(x)-ord('A')+2)%26+ord('A')) for x in lst)

这很尴尬。使用像 {'A': 'C', 'B': 'D', ……, 'X': 'Z', 'Y': 'A', 'Z': 'B' 这样的字典 看起来更 Pythonic,但更笨拙。

有什么想法吗?

最佳答案

您可以简单地构建该字典:

>>> import string
>>> dict(zip(string.uppercase, string.uppercase[2:]+string.uppercase[:2]))
{'A': 'C', 'C': 'E', 'B': 'D', 'E': 'G', 'D': 'F', 'G': 'I', 'F': 'H', 'I': 'K', 'H': 'J', 'K': 'M', 'J': 'L', 'M': 'O', 'L': 'N', 'O': 'Q', 'N': 'P', 'Q': 'S', 'P': 'R', 'S': 'U', 'R': 'T', 'U': 'W', 'T': 'V', 'W': 'Y', 'V': 'X', 'Y': 'A', 'X': 'Z', 'Z': 'B'}

然后使用它:

>>> m = dict(zip(string.uppercase, string.uppercase[2:]+string.uppercase[:2]))
>>> ''.join(map(m.get, "ABCXYZ"))
'CDEZAB'

关于python - 如何以 Pythonic 方式将 "ABCD…"转换为 "CDEF…"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43411972/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com