Python 中连续元素的最大乘积

pythonserver side programmingprogramming更新于 2026/1/13 5:32:17

Python 拥有强大的数据处理库。我们可能会遇到需要找到大字符串中两个连续数字的最大乘积的情况。在本文中,我们将介绍实现该目标的方法。

使用 zip 和 max

我们将字符串转换为列表。然后借助切片从连续元素创建对。应用 * 我们对对进行乘法运算,然后从每个对的乘法结果中取最大值。

示例

Astring = '5238521'
# 给定字符串
print("给定字符串 : ",Astring)
# 转换为列表
Astring = list(Astring)
print("转换为列表的字符串:\n",Astring)
# 使用 max()
res = max(int(a) * int(b) for a, b in zip(Astring, Astring[1:]))
# 结果
print("最大连续乘积为 : ",res)

输出

运行上述代码得到以下结果 −

给定字符串:5238521
字符串转换为列表:
['5', '2', '3', '8', '5', '2', '1']
最大连续乘积为:40

使用 map 和 max

我们采用与上述类似的方法。但是我们使用 map 函数来不断生成连续整数对。然后使用来自 operator 模块的 mul 函数将此对中的数字相乘。最后应用max函数得到结果的最大值。

示例

from operator import mul
Astring = '5238521'
# 给定字符串
print("给定字符串 : ",Astring)
# 转换为列表
Astring = list(Astring)
print("转换为列表的字符串:\n",Astring)
# 使用max()
res = max(map(mul, map(int, Astring), map(int, Astring[1:])))
# 结果
print("最大连续乘积为 : " ,res)

输出

运行上述代码得到以下结果 −

给定字符串:5238521
字符串转换为列表:
['5', '2', '3', '8', '5', '2', '1']
最大连续乘积为:40

相关文章


有用资源