def tribonacci(signature, n):
f = 0
if n == 0:
return []
if n == 1:
return [signature[0]]
if n == 2:
return [signature[0], signature[1]]
while len(signature) != n:
i = signature[0 + f] + signature[1 + f] + signature[2 + f]
signature.append(i)
f += 1
return signature
这是来自codewars.com的Tribonacci(与Fibonacci相同,但具有3个数字)代码,我知道它可能更漂亮,更优雅,但我想知道如何减少这一特定部分:
if n == 0:
return []
if n == 1:
return [signature[0]]
if n == 2:
return [signature[0], signature[1]]
谢谢!
[3种情况0, 1, 2
可以减少为一种,因为所有情况都返回签名列表,直到给定的n
if n < 3: # if 0 <= n < 3: can be used for satefy
return list(signature[:n])