gpt4 book ai didi

Python:如何在不创建范围的情况下计算范围的长度?

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

我需要计算一个范围的长度,但最好不要创建范围(希望会更快并且使用更少的内存。这很重要,因为这个函数会被调用很多)。该长度用于设置扩展切片。

目前我已经尝试过:

int_div = lambda n, d: (n + d // 2) // d

def range_len(start, stop, step):
return int_div(stop - start, step)

但在某些情况下,例如 range_len(9, 100, 3) 它在正确答案为 31 时给出 30。我觉得这应该很简单,我做错了什么?

最佳答案

您可以使用这个公式:(end - start - 1)//step + 1

def calc_length(start, end, step):
return (end - start - 1) // step + 1

for i in range(start, end):
calculated = calc_length(start, i, step)
empirical = len(range(start, i, step))

assert calculated == empirical, "{} {}".format(calculated, empirical)

关于Python:如何在不创建范围的情况下计算范围的长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31839032/

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