在Python中列出乘法

时间:2017-10-19 12:12:48

标签: python list tuples

我需要乘以不同的列表来计算不规则多边形的区域。

X = [1,1,1,1,1,1]
Y = [5,4,3,2,1,0]

这意味着第1点的坐标为(1,5),第2点的坐标为(1,4),依此类推。要计算区域,我需要将X[i] * Y[i+1]乘以等于1 * 4, 1 * 3, 1 * 2并排除最后一个乘法,例如1 * empty

我该怎么做?

2 个答案:

答案 0 :(得分:4)

因此,根据我的理解,您需要在XY之间存在延迟,其中排除Y的第一个元素,X的最后一个元素是排除。换句话说,你需要像:

[(1, 4), (1, 3), (1, 2), (1, 1), (1, 0)]

您可以通过以下方式制作以上内容:

zipped = zip(X[:-1], Y[1:])

你可以像这样计算每对产品:

[a * b for a, b in zipped]

当然,如果XY是numpy数组,那么你可以更有效地做到这一点:

>>> X[:-1] * Y[1:]
array([4, 3, 2, 1, 0])

答案 1 :(得分:2)

这样的东西
[x * y for x, y in zip(X, Y[1:])]

会这样做。但是你应该把Numpy用于任何非平凡的事情。