我想在不使用 numpy 的情况下逐个元素地对列表进行操作,例如,我想要add([1,2,3], [2,3,4]) = [3,5,7]
and mult([1,1,1],[9,9,9]) = [9,9,9]
,但我不确定哪种方式被认为是“正确”的样式。
我想出的两个解决方案是
def add(list1,list2):
list3 = []
for x in xrange(0,len(list1)):
list3.append(list1[x]+list2[x])
return list3
def mult(list1, list2):
list3 = []
for x in xrange(0,len(list1)):
list3.append(list1[x]*list2[x])
return list3
def div(list1, list2):
list3 = []
for x in xrange(0,len(list1)):
list3.append(list1[x]/list2[x])
return list3
def sub(list1, list2):
list3 = []
for x in xrange(0,len(list1)):
list3.append(list1[x]-list2[x])
return list3
每个运算符都有一个单独的函数
和
def add(a,b)
return a+b
def mult(a,b)
return a*b
def div(a,b)
return a/b
def sub(a,b)
return a-b
def elementwiseoperation(list1, list2, function):
list3 = []
for x in xrange(0,len(list1)):
list3.append(function(list1[x],list2[x]))
return list3
其中定义了所有基本功能,并且我有一个单独的功能可以在每个元素上使用它们。我浏览了 PEP8,但没有找到任何直接相关的内容。哪种方式更好?