【发布时间】:2017-03-02 12:24:33
【问题描述】:
我不能使用 Numpy 或任何其他库函数,因为这是我必须做的问题,我必须定义自己的方式。
我正在编写一个将两个列表(二维)作为参数的函数。该函数应该计算两个列表的元素乘积并将它们存储在第三个列表中,并从函数返回这个结果列表。 输入列表的一个示例是:
列表1:
[[2,3,5,6,7],[5,2,9,3,7]]
列表2:
[[5,2,9,3,7],[1,3,5,2,2]]
该函数打印以下列表:
[[10, 6, 45, 18, 49], [5, 6, 45, 6, 14]]
即2*5=10、3*2=6、5*9=45 ...等等。
这是我下面的代码,但它仅适用于其中包含 2 个列表(元素)的列表,就像上面的示例一样,并且工作得非常好,但我想要的是编辑我的代码,以便无论如何二维列表中有许多列表(元素),它应该在新的二维列表中打印出其元素乘积,例如它也应该适用于
[[5,2,9,3,7],[1,3,5,2,2],[1,3,5,2,2]]
或
[[5,2,9,3,7],[1,3,5,2,2],[1,3,5,2,2],[5,2,9,3,7]]
或整个列表中有任意数量的列表。
def ElementwiseProduct(l,l2):
i=0
newlist=[] #create empty list to put prouct of elements in later
newlist2=[]
newlist3=[] #empty list to put both new lists which will have proudcts in them
while i==0:
a=0
while a<len(l[i]):
prod=l[i][a]*l2[i][a] #corresponding product of lists elements
newlist.append(prod) #adding the products to new list
a+=1
i+=1
while i==1:
a=0
while a<len(l[i]):
prod=l[i][a]*l2[i][a] #corresponding product of lists elements
newlist2.append(prod) #adding the products to new list
a+=1
i+=1
newlist3.append(newlist)
newlist3.append(newlist2)
print newlist3
#2 dimensional list example
list1=[[2,3,5,6,7],[5,2,9,3,7]]
list2=[[5,2,9,3,7],[1,3,5,2,2]]
ElementwiseProduct(list1,list2)
【问题讨论】:
-
你应该在列表中使用 zip
-
Moses Koledoye 的回答应该可以在没有 Numpy 的情况下解决问题
-
如果以下答案之一解决了您的问题,您应该接受它(单击相应答案旁边的复选标记)。这有两件事。它让每个人都知道您的问题已得到您满意的解决,并为帮助您的人提供帮助。有关完整说明,请参阅here。
标签: python list python-2.7