如何在Python中的字母上创建循环迭代器?

汤姆·梅洛

鉴于以下情况:

import string

UPPERCASE_ALPHABET = list(string.ascii_uppercase)
LOWERCASE_ALPHABET = list(string.ascii_lowercase)

如何在跳跃N个位置的字母上创建循环循环?


范例1

字母= a,跳跃= 5

结果:f


范例2

字母= z,跳转= 5

结果:e


到目前为止,我得到了:

import string

UPPERCASE_ALPHABET = list(string.ascii_uppercase)
LOWERCASE_ALPHABET = list(string.ascii_lowercase)

def forward(letter, jump):
    alphabet = LOWERCASE_ALPHABET if letter.islower() else UPPERCASE_ALPHABET
    index = alphabet.index(letter)
    count = 0
    while True:
        if count == jump:
            return alphabet[index]

        if index == len(alphabet):            
            index = 0

        index += 1
        count += 1

print forward('a', 5)
print forward('z', 5)

但这看起来根本不是Pythonic ...

是否有更好的Python方式做到这一点?也许使用chr(ord('N')+ position)吗?

大卫·卡伦

我认为您对ord拥有正确的想法chr

import string

def forward(letter, jump):
    if letter.islower():
        start_character = ord('a')
    else:
        start_character = ord('A')
    start = ord(letter) - start_character
    offset = ((start + jump) % 26) + start_character
    result = chr(offset)
    return result

print forward('a', 5)
print forward('z', 5)
print forward('z', 1)
print forward('a', 26)
print forward('A', 5)
print forward('Z', 5)
print forward('Z', 1)
print forward('A', 26)

输出量

f
e
a
a
F
E
A
A

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在python中的for循环中创建多重迭代器和条件?

如何在迭代器上循环?

如何在Python的循环中更改for循环迭代器变量?

如何在python中处理迭代器?

如何在结构字段上创建可变的迭代器

如何在堆栈上创建按值迭代器?

如何在Python中未知长度的列表上以级联格式(在for循环中)进行迭代?

Python中的循环迭代器

如何在python的for循环中操作迭代器?

C ++中迭代器的指针如何在循环中变化?

如何拆分通过python中for循环的多次迭代创建的列表

如何在php中迭代字母az?

如何在python中创建一个迭代器类,它将以相反的顺序迭代输入?

如何在Java中创建自定义迭代器?

我如何在python中停止循环迭代

如何在Python中打印出for循环的每个迭代?

如何在python中停止for循环的迭代?(滑动窗问题)

如何在python中的for循环的迭代期间使异常

如何在结构中的stdin上存储迭代器?

如何创建无限迭代器以生成递增的字母图案?

我如何在Python中迭代函数以创建数组?

Numpy-如何在OpenCV python中迭代创建ROI?

如何在python3中的循环创建的每一行上添加静态值?

Python中的循环列表迭代器

Python中的迭代器(循环变量)

如何在python 3中用所有字母(az)创建txt频率计数器

Python - 如何在文件解析中优化迭代器

如何在python中控制迭代器的结果顺序

如何在单个可迭代的python上同时具有多个迭代器?