如何减少很多“ if”语句

问题描述 投票:0回答:1
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]]

谢谢!

python algorithm fibonacci
1个回答
0
投票

[3种情况0, 1, 2可以减少为一种,因为所有情况都返回签名列表,直到给定的n

if n < 3: # if 0 <= n < 3: can be used for satefy
    return list(signature[:n])
© www.soinside.com 2019 - 2024. All rights reserved.