K. *_*ter 0 python iteration algorithm for-loop
所以我正在尝试做一个代码,将一个单词中的每个字母移回字母表中的一些字母(包围结尾).例如,如果我想换2并输入CBE,我应该得到AZC.或者约翰进入HMFL.我有一个代码只能用于一个字母,我想知道是否有办法为python做一个嵌套for循环(这有效吗?)
def move(word, shift):
alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ"
original = ""
for letter in range(26, len(alphabet)):
if alphabet[letter] == word: #this only works if len(word) is 0, I want to be able to iterate over the letters in word.
original += alphabet[letter-shift]
return original
Run Code Online (Sandbox Code Playgroud)
你可以这样开始
def move(word, shift):
alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
return "".join([alphabet[alphabet.find(i)-shift] for i in word])
Run Code Online (Sandbox Code Playgroud)
基本上,这个列表理解构造了单个字母的列表.然后,通过.find方法找到字母表中字母的索引.(索引 - 移位)是所需的新索引,它是从字母表中提取的.生成的列表再次连接并返回.
请注意,它显然不适用于小写输入字符串(如果您希望使用str.upper方法).实际上,这个词应该只包含字母表中的字母.对于句子,该方法需要以不同方式处理空格.
| 归档时间: |
|
| 查看次数: |
300 次 |
| 最近记录: |