gpt4 book ai didi

python - Python 中列表的循环索引

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

假设我有一个数组 foo ,例如元素 [1, 2, 3],并且我想检索 foo 的元素,就好像 foo 已被“无限串联”。

例如 foo[0:2] 会返回(像一个普通的列表):

[1, 2]

foo[0:5] 将返回:

[1, 2, 3, 1, 2]

虽然 foo[7:13] 会返回:

[2, 3, 1, 2, 3, 1]

Python 中是否有任何数据容器或扩展模块已经促进了这种类型的访问?如果没有,提供此容器的好/简单方法是什么?

最佳答案

恐怕您必须自己实现。不过这并不难:

class cyclist(list):
def __getitem__(self, index):
return list.__getitem__(self, index % len(self))

def __getslice__(self, start, stop):
return [self[n] for n in range(start, stop)]


foo = cyclist([1, 2, 3])
print foo[0:2] # [1, 2]
print foo[7:13] # [2, 3, 1, 2, 3, 1]
print foo[0:5] # [1, 2, 3, 1, 2]

它缺少一些细节,例如处理省略的切片参数、切片中的负数和切片步骤。

关于python - Python 中列表的循环索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15441495/

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