gpt4 book ai didi

python - 如何在列表中循环更多次 python 中的列表大小?

转载 作者:太空狗 更新时间:2023-10-30 00:30:59 25 4
gpt4 key购买 nike

我需要知道在 python 中是否存在允许我在列表中循环的次数多于列表中元素数的函数或 native 库。换句话说,当我感兴趣的索引大于列表大小时,下一个元素是列表的第一个。

例如,我有这个列表:

abc = ['a', 'b', 'c', 'd', 'e' ]

因此,如果我有一个值为 10 的参数,则结果为“a”。如果值为 18 的参数是 'd'。

谢谢!

问候!

最佳答案

最简单:用模包裹索引

>>> abc = ['a', 'b', 'c', 'd', 'e' ]
>>> abc[18 % len(abc)]
'd'

如果需要,您可以将其包装在辅助类中:

>>> class ModList(list):
... def __getitem__(self, item):
... if isinstance(item, slice):
... return super().__getitem__(item)
... return super().__getitem__(item % len(self))
...
>>> abc = ModList('abcde')
>>> abc[18]
'd'
>>> abc[-5]
'a'
>>> abc[-6]
'e'

您可能希望以类似方式实现 __setitem____delitem__

关于python - 如何在列表中循环更多次 python 中的列表大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50033547/

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