如何从 range() 函数中获取最后一个数字?

问题描述 投票:0回答:5

有没有办法从

range()
函数获取最后一个数字? 我需要获取斐波那契数列前 20 项的最后一个数字,还是应该使用列表而不是
range()

python range fibonacci
5个回答
13
投票

不太确定你在这里追求什么,但这里是:

rangeList = range(0,21)
lastNumber = rangeList[len(rangeList)-1:][0]

或:

lastNumber = rangeList[-1]

3
投票

通过在范围内,您的意思是生成器提供的最后一个值吗?如果是这样,你可以这样做:

def fibonacci(iterations):
    # generate your fibonacci numbers here...


[x for x in fibonacci(20)][-1]

这将为您提供最后生成的值。


1
投票

我认为没有人认为你需要斐波那契数列。不,您必须存储每个数字才能递归地构建斐波那契数列,但有一个公式可以获取斐波那契数列的第 n 项。

比奈公式

如果您需要列表的最后一个数字,请使用 myList[-1]。


0
投票

这就是你所追求的吗?

somerange = range(0,20)
print len(somerange) # if you want 20
print len(somerange)-1 # if you want 19

现在如果您想要列表中包含的数字或项目...

x = [1,2,3,4]
print x[len(x)-1]
# OR
print x[-1] # go back 1 element from current index 0, takes you to list end

0
投票

Python

range
是可下标的,可以计算索引而无需生成所有数字:

range(1, 10**10, 3)[-1]

会立即返回。

r = range(start, stop, step)
的实际计算类似于
r.start + (len(r) - 1) * r.step
len(r)
是在恒定时间内计算的,并且假设
len(r) > 0

© www.soinside.com 2019 - 2024. All rights reserved.