使用Map函数在Python中二进制字符串中连续1的最大长度
有时,当处理数字的二进制表示形式时,可能需要找出数字中存在多少个连续的1。本文介绍了两种方法来找出这一点。
使用分割和贴图
python中的split函数可用于将给定的字符串拆分为多个字符串。我们将其除以零,然后使用map函数在生成的分割中查找最大长度。
示例
data = '11110000111110000011111010101010101011111111' def Max_len_cons_1(data): print ("Maximum Number of consecutive one's: ",max(map(len,data.split('0'))) ) Max_len_cons_1(data)
输出结果
运行上面的代码给我们以下结果-
Maximum Number of consecutive one's: 8
使用正则表达式
python中的re模块还可以用于计算连续1的最大数量。在这里,我们找到1+的模式,它表示1的一个或多个数字。然后在这些样式中找到最大长度。
示例
data = '11110000111110010011' import re the_ones = re.findall(r"1+", data) print("The blocks of one's: ",the_ones) print("Maximum Number of consecutive one's =", len(max(the_ones, key=len)))
输出结果
运行上面的代码给我们以下结果-
The blocks of one's: ['1111', '11111', '1', '11'] Maximum Number of consecutive one's = 5