Python - 如何在不使用库的情况下连续计算列表的索引?

下面我有一个小写字母列表。我的任务是从列表中获取小写字母的索引并添加移位。移位可以变化并且不是 1000。也可以是 50000 或 10 等。如果索引 + 移位大于 25,则应继续从“a”开始计数,直到达到 (索引 + 移位) 并返回字母。我不被允许使用图书馆。


我的解决方案不适用于 1000 这样的大班次


shift = 1000

alphaList = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']


index = alphaList.index('u')

index = (index + shift) - len(alphaList)   # this part has to be adjusted 

print(index)

print(alphaList[index])

结果应该是:“g”


我得到的是:


---------------------------------------------------------------------------

IndexError                                Traceback (most recent call last)

<ipython-input-20-8d37e597ee25> in <module>

      5 index = (index + shift) - len(alphaList)

      6 print(index)

----> 7 print(alphaList[index])


IndexError: list index out of range

----------------------------------------------------------------------------


MYYA
浏览 138回答 2
2回答

慕尼黑8549860

您正在寻找模运算符。从文档(重点是我的):%(模)运算符产生第一个参数除以第二个参数的余数。数字参数首先被转换为通用类型。右参数为零会引发 ZeroDivisionError 异常。参数可以是浮点数,例如,3.14%0.7 等于 0.34(因为 3.14 等于 4*0.7 + 0.34。)模运算符始终产生与其第二个操作数具有相同符号(或零)的结果;结果的绝对值严格小于第二个操作数的绝对值index = (index + shift) % len(alphaList)

冉冉说

此处使用模运算符:index&nbsp;=&nbsp;(index+shift)&nbsp;%&nbsp;len(alphaList)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python