我需要运行如下函数:
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...
吗?
答案 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]