结合python

时间:2018-02-22 14:15:14

标签: python list function loops

我需要运行如下函数:

def func1(a):
    l=a+1
    print (l)

def func2(a,b):
    l=a+1
    z.append(l)
    l=b+1
    z.append(l)
    print (l)

def func2(a,b,c):
    l=a+1
    z.append(l)
    l=b+1
    z.append(l)
    l=c+1
    z.append(l)
    print (l)

等等。有人可以向我展示一个替代方案,我可以将所有这些函数组合到一个函数中,我可以在其中添加尽可能多的值(a,b,c,d..),并且列表中给出的输出将是a+1,b+1,c+1,d+1...吗?

3 个答案:

答案 0 :(得分:4)

您可以定义一个函数来获取可变数量的参数,然后使用list comprehension在一个语句中处理它们,如:

代码:

def increment_to_list(*args):
    return [a + 1 for a in args]

测试代码:

print(increment_to_list(1,2,3))
print(increment_to_list(4,5,6,7,8))

结果:

[2, 3, 4]
[5, 6, 7, 8, 9]

答案 1 :(得分:2)

我想你想做这样的事情:

def f(*args):
    l = []
    for i in args:
        l.append(i+1)

    return l

或者,如果您喜欢像我这样的列表推导,您可以这样做:

def f(*args):
    return [val + 1 for val in args]

答案 2 :(得分:1)

我认为你需要带有列表输出的可变数量的参数:

def myFunc(*args):
    return [i+1 for i in args]

现在你可以从这个函数得到你的z

z = myFunc(1,2,3,4)
z
#[2, 3, 4, 5]