使用多个列表作为函数的输入参数(Python)

2024-09-28 16:21:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道属性映射(function,list)将一个函数应用于单个列表的每个元素。但是如果我的函数需要多个列表作为输入参数,那会怎么样呢?。在

例如,我试过:

   def testing(a,b,c):
      result1=a+b
      result2=a+c
      return (result1,result2)

a=[1,2,3,4]
b=[1,1,1,1]
c=[2,2,2,2]

result1,result2=testing(a,b,c)

但这只会连接数组:

^{pr2}$

我需要的是以下结果:

result1=[2,3,4,5] 
result2=[3,4,5,6]

如果有人能告诉我这是怎么可能的,或者告诉我一个链接,在类似的情况下我的问题可以得到回答,我将不胜感激。在


Tags: 函数元素列表参数return属性链接def
3条回答

您可以使用operator.add

from operator import add

def testing(a,b,c):
    result1 = map(add, a, b)
    result2 = map(add, b, c)
    return (result1, result2)

您可以使用zip

def testing(a,b,c):
    result1=[x + y for x, y in zip(a, b)]
    result2=[x + y for x, y in zip(a, c)]
    return (result1,result2)

a=[1,2,3,4]
b=[1,1,1,1]
c=[2,2,2,2]

result1,result2=testing(a,b,c)
print result1 #[2, 3, 4, 5]
print result2 #[3, 4, 5, 6]

简单快捷:

result1 = [a[i] + b[i] for i in range(0,len(a))]
result2 = [a[i] + c[i] for i in range(0,len(a))]

(或者为了安全起见,您可以使用range(0, min(len(a), len(b))

相关问题 更多 >