从列表中两个相邻数字的乘法中找出最大数字

时间:2018-04-03 09:33:36

标签: python arrays python-3.x sum

def adjacentElementsProduct(l):
for x,y in zip(l,l[1:]):
    c=x*y

print(adjacentElementsProduct([2,5,10,5,2]))

如何添加可以打印来自c = x * y过程的最大数字的方法

示例: - 我的列表[2,5,10,5,2]

下面的代码,好吧

for x,y in zip (l,l[1:]):
c=x*y

比较两个相邻的数字并执行乘法过程

如何制作方法来打印并保存此过程中最大的数字?

1 个答案:

答案 0 :(得分:1)

这是一种方式。

def adjacentElementsProduct(l):
    for x, y in zip(l,l[1:]):
        yield x*y

print(max(adjacentElementsProduct([2,5,10,5,2])))
# 50

这可以更简洁地编写,无需定义函数:

lst = [2,5,10,5,2]
print(max(x*y for x, y in zip(lst, lst[1:])))

<强>解释

  • 缩进在Python中是至关重要的。确保缩进正确。
  • 您的功能应为returnyield值。在这种情况下,如果您在函数外部调用yield,则max是合适的。

矢量化方法

您也可以使用numpy

import numpy as np

x = np.array([2,5,10,5,2])

(x[:-1]*x[1:]).max()
# 50