如果逻辑不在python的数组上下文中工作

时间:2015-02-16 23:58:19

标签: python list if-statement

我有一个功能,根据类型t,需要应用不同的功能。我尝试了以下方法,但它在列表上下文中不起作用。

def compute(d, t='c'):
    """
    d is the computing variable
    t is the type, can be a list
    """
    if t == 'a':
        p = fa(d)
    elif t == 'b':
        p = fb(d)
    else:
        p = fc(d)
    return p

例如,t可能是

t = ['a', 'b', 'a' , 'c', 'b']

并且应该返回

p = [fa(d), fb(d), fa(d), fc(d), fb(d)]

有什么建议吗?

干杯, 麦克

1 个答案:

答案 0 :(得分:0)

这应该有效

def compute(d, t='c'):
    """
    d is the computing variable
    t is the type, can be a list
    """
    l = []
    for x in t:
        if t == 'a':
            l.append(fa(d))
        elif t == 'b':
            l.append(fb(d))
        else:
            l.append(fc(d))

    if len(l) == 1:
        return l[0]
    else:
        return l

compute(d, ['a', 'b', 'a' , 'c', 'b'])

它处理t中的所有内容,无论是单个项目还是列表。

请注意,它返回被调用函数的返回值,而不是函数及其参数