为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

MYYA 2023-10-31 21:21:17
下面我有一个小写字母列表。我的任务是从列表中获取小写字母的索引并添加移位。移位可以变化并且不是 1000。也可以是 50000 或 10 等。如果索引 + 移位大于 25,则应继续从“a”开始计数,直到达到 (索引 + 移位) 并返回字母。我不被允许使用图书馆。我的解决方案不适用于 1000 这样的大班次shift = 1000alphaList = ['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----------------------------------------------------------------------------
查看完整描述

2 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

您正在寻找模运算符。从文档(重点是我的):

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

index = (index + shift) % len(alphaList)


查看完整回答
反对 回复 2023-10-31
?
冉冉说

TA贡献1877条经验 获得超1个赞

此处使用模运算符:

index = (index+shift) % len(alphaList)


查看完整回答
反对 回复 2023-10-31
  • 2 回答
  • 0 关注
  • 85 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信