还不如直接range(0,10,2).__len__()
这个我知道{:10_327:} 这个问题有点意思
a=range(0,100,2)
print(a.start)
print(a.stop)
print(a.step)
print((a.stop-a.start)/a.step)
print(len(a))
print(a.__len__()) sunrise085 发表于 2020-4-2 13:59
这个问题有点意思
感谢回答,不过这个式子不适用于range(-999, -998, -999),range(-99, -98, 2),range(1,2,3)等部分答案{:10_262:} 偷偷参考一下range源代码{:10_256:} 本帖最后由 lixiangyv 于 2020-4-3 09:41 编辑
直接用 len 来就行。
例子:
len(range(1, 10))
len(range(-999, 999, 9)) 我认为,可以用:
a = []
for i in range(1,2,3):
a.append(i)
len(a) 请问 LZ 解决了吗? 请问?
@永恒的蓝色梦想 不明觉厉!
楼主的目的是研究吧?而不是实践!!! NZND 发表于 2020-4-3 14:02
我认为,可以用:
按你这么说,为什么我不len(range(1,2,3))呢 xiangjianshinan 发表于 2020-4-5 12:10
不明觉厉!
楼主的目的是研究吧?而不是实践!!!
是的,研究函数的行为 一个账号 发表于 2020-4-5 11:11
请问 LZ 解决了吗?
@_2_ 没有解决 永恒的蓝色梦想 发表于 2020-4-5 13:28
@_2_ 没有解决
……还是看看源码吧,别自己纠结了…… _2_ 发表于 2020-4-5 13:29
……还是看看源码吧,别自己纠结了……
源代码应该是用 C 写的。。。 一个账号 发表于 2020-4-5 14:24
源代码应该是用 C 写的。。。
…… _2_ 发表于 2020-4-5 13:29
……还是看看源码吧,别自己纠结了……
之前看过了,根本不知道应该是哪个函数……一堆 哎,真是搞不懂。不知道range的长度不是用len就能搞定了吗?比如:
>>> len(range(5))
5
>>> len(range(1,5))
4
>>> len(range(1,5,2))
3
>>>
但是注意,range不包含最后一个数字,包含第一个数字。
或者,用数学也是可以解决的。
如果range就一个参数,那长度就是那个参数。
如果range有两个参数,那长度就是第二个参数减第一个参数。
如果range有三个参数,那就是去掉小数点的第二个参数减第一个参数再加1(如果第二个参数减第一个参数没有小数点就省略)。 陈尚涵 发表于 2020-4-7 15:57
哎,真是搞不懂。不知道range的长度不是用len就能搞定了吗?比如:
但是注意,range不包含最后一个数字 ...
1L我说过了,我是要尝试自己实现一个range,难道你说的这个我不知道?
一个参数和两个参数就不用说了,地球人都知道怎么算
有三个参数的时候,你说去掉小数点的第二个参数减第一个参数再加1(如果第二个参数减第一个参数没有小数点就省略)。请问 range(1,10,2) ,您如何解释?
页:
1
[2]