列表中的元素相乘

时间:2018-12-03 20:05:11

标签: python

我想将sum_row的第一和第二个元素分别乘以13。并将第三和第四乘以11,最后一个乘以9。

我想我的问题确实是如何访问列表中的元素,以便以后可以将它们用于计算?

matrix5x5 = [[1 for row in range (5)] for col in range (5)]
for row in matrix5x5: 
    for item in row:
        print(item,end=" ") 
    print()

sum_row = [sum(i) for i in matrix5x5] 
print(sum_row)

输出:

1 1 1 1 1 
1 1 1 1 1 
1 1 1 1 1 
1 1 1 1 1 
1 1 1 1 1 
[5, 5, 5, 5, 5]

4 个答案:

答案 0 :(得分:2)

您可以尝试以下一种方法:

sum_row = [1,1,1,1,1] # example
YourList = [13,13,11,11,9]
result = []                        
for i in range(0, len(sum_row)):
     result.append(sum_row[i]*YourList[i])

print result

,输出将是:

[13, 13, 11, 11, 9]

您甚至可以尝试使用[5,5,5,5,5]作为每一行的总和。

答案 1 :(得分:1)

您可以使用zip()函数:

result = [a * b for a, b in zip(sum_row, [13,13,11,11,9])]
print(result)

# OUTPUT
# [65, 65, 55, 55, 45]

答案 2 :(得分:0)

对于矢量化计算,请使用numpy

import numpy as np
result = np.array(sum_row) * np.array([13,13,11,11,9])

结果:

>>> result
array([65, 65, 55, 55, 45])

答案 3 :(得分:0)

最简单的答案是:

l = [1,2,3,4,5]

a = l[0] * 13
b = l[1] * 13
c = l[2] * 11
d = l[3] * 11
e = l[4] * 9

print(a, b, c, d, e)

您的结果将是13 26 33 44 45

其他用户提供了更短,更好的方法来进行此操作,但是如果您想遵循他们的做法,则应尝试了解他们的所作所为。