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

Python 从列表中两个相邻数字的乘积中找出最大的数字,python,arrays,python-3.x,sum,Python,Arrays,Python 3.x,Sum,如何添加可以打印来自c=x*y进程的最大数字的方法 示例:-我的列表[2,5,10,5,2] 下面的代码是 def adjacentElementsProduct(l): for x,y in zip(l,l[1:]): c=x*y print(adjacentElementsProduct([2,5,10,5,2])) 比较两个相邻的数字并执行乘法过程 如何在这个过程中打印并保存最大的数字?这里有一种方法 for x,y in zip (l,l[1:]): c=x*y 无需定义函

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

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

下面的代码是

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

print(adjacentElementsProduct([2,5,10,5,2]))
比较两个相邻的数字并执行乘法过程

如何在这个过程中打印并保存最大的数字?

这里有一种方法

for x,y in zip (l,l[1:]):
c=x*y
无需定义函数即可更简洁地编写:

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

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

  • 缩进在Python中至关重要。确保缩进正确
  • 您的函数应该
    返回
    产生
    值。在这种情况下,如果在函数外部调用
    max
    ,则
    yield
    是合适的
矢量化方法

您还可以为此使用
numpy

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

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

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