Python 中的连续元素最大乘积


Python 拥有出色的库来处理数据。我们可能会需要查找构成大字符串一部分的两个连续数字的最大乘积。本文介绍实现这一目标的方法。

使用 zip 和 max

将字符串转换为列表。然后使用切片从连续元素创建成对。应用 * 乘以对,然后从每对的乘积结果中获取最大值。

示例

 在线演示

Astring = '5238521'
# Given string
print("Given String : ",Astring)
# Convert to list
Astring = list(Astring)
print("String converted to list:\n",Astring)
# Using max()
res = max(int(a) * int(b) for a, b in zip(Astring, Astring[1:]))
# Result
print("The maximum consecutive product is : " ,res)

输出

运行上述代码为我们提供了以下结果 -

Given String : 5238521
String converted to list:
['5', '2', '3', '8', '5', '2', '1']
The maximum consecutive product is : 40

使用 map 和 max

我们采取与上面类似的方法。但我们使用 map 函数继续生成连续整数对。然后使用 operator 模块中的 mul 函数来乘以此对中的数字。最后应用 max 函数以获得结果的最大值。

示例

from operator import mul
Astring = '5238521'
# Given string
print("Given String : ",Astring)
# Convert to list
Astring = list(Astring)
print("String converted to list:\n",Astring)
# Using max()
res = max(map(mul, map(int, Astring), map(int, Astring[1:])))
# Result
print("The maximum consecutive product is : " ,res)

输出

运行上述代码为我们提供了以下结果 -

Given String : 5238521
String converted to list:
['5', '2', '3', '8', '5', '2', '1']
The maximum consecutive product is : 40

更新日期: 20-May-2020

262 次浏览

职业

完成课程,获得认证

开始
广告