我试图从一个较大的nK+d元素数组中提取一个nextK连续项数组。其中0<;d<;=K和n>;=0。换句话说,在第一次尝试中,我将获得数组[:K],然后是下一次的数组[K:2K],依此类推。在上一次迭代中,所有剩余元素数组[nK:nK+d],即使剩余的项目数小于K。在所有这些之前的操作中,最好保持原始数组不变
例如:
>>> arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> k_items = get_next_k(arr, k = 3)
>>> print(k_items)
[1, 2, 3]
>>> k_items = get_next_k(arr, k = 3)
>>> print(k_items)
[4, 5, 6]
>>> k_items = get_next_k(arr, k = 3)
>>> print(k_items)
[7, 8, 9]
>>> k_items = get_next_k(arr, k = 3)
>>> print(k_items)
[10]
>>> print(arr)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
有没有一个简单有效的方法来实现这一点
经过一番脑力激荡和网络研究,我有了一个简单解决问题的想法
我的代码:(
get_k.py
)输出:
另外,这里最大的灵活性之一是,我可以在每次调用中修改K的值
谢谢
将itertools.islice与生成器表达式一起使用
输出:
您可以尝试以下方法:
输出
相关问题 更多 >
编程相关推荐