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
广告