首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

获取0和1列表中的每个重复数字块的第一个数字

基础概念

在编程中,处理列表(数组)中的重复元素是一个常见的需求。获取0和1列表中的每个重复数字块的第一个数字,意味着我们需要遍历这个列表,找到连续出现的0或1的块,并记录下每个块的第一个数字。

相关优势

  • 效率:通过一次遍历即可完成任务,时间复杂度为O(n),其中n是列表的长度。
  • 简洁性:代码逻辑清晰,易于理解和维护。

类型

这个问题属于数组处理和逻辑判断的类型。

应用场景

这种类型的逻辑在数据处理、数据清洗、模式识别等领域都有应用。例如,在分析二进制数据流时,可能需要识别特定的模式。

问题解决

假设我们有一个包含0和1的列表,我们需要编写一个函数来获取每个重复数字块的第一个数字。

示例代码(Python)

代码语言:txt
复制
def get_first_of_blocks(binary_list):
    if not binary_list:
        return []

    result = []
    current_block = binary_list[0]

    for i in range(1, len(binary_list)):
        if binary_list[i] != current_block[-1]:
            result.append(current_block[0])
            current_block = binary_list[i]
        else:
            current_block += binary_list[i]

    result.append(current_block[0])  # 添加最后一个块的第一个数字
    return result

# 示例使用
binary_list = [1, 1, 0, 0, 0, 1, 1, 1, 0]
print(get_first_of_blocks(binary_list))  # 输出: [1, 0, 1, 0]

解释

  1. 初始化:我们首先检查列表是否为空,如果为空则直接返回空列表。
  2. 遍历列表:我们使用一个循环遍历列表中的每个元素。
  3. 判断块的变化:如果当前元素与前一个元素不同,说明当前块结束了,我们将当前块的第一个数字添加到结果列表中,并开始一个新的块。
  4. 处理最后一个块:循环结束后,我们需要将最后一个块的第一个数字添加到结果列表中。

参考链接

通过这种方式,我们可以高效地获取0和1列表中的每个重复数字块的第一个数字。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Excel公式练习90:返回字符串第一块数字之后所有内容(续3)

引言:在《Excel公式练习87:返回字符串第一块数字之后所有内容》、《Excel公式练习88:返回字符串第一块数字之后所有内容(续1)》《Excel公式练习89:返回字符串第一块数字之后所有内容...图1公式应该处理任意长度字符串任意长度数字——不仅仅是图1所显示长度。此外,不应该使用任何辅助单元格、中间公式或命名区域,或者VBA。 如何使用公式获得结果?...解决方案 如上图1所示,需要返回字符是蓝色粗体部分,即第一个文本和数字块之后文本和数字块,对于“Monaco7190Australia1484”返回是“Australia1484”。...问题难点在于有一个文本块,然后是一个数字块,接着是我们实际想要提取文本/数字块。因此,由于前面有一个文本/数字块,很难确定第二个文本/数字块位置。...图6 由于我们在这个示例数组有两列,提供给MMULT第二个参数是{1;-1},在这种情况下,MMULT有效地将第一列每个数字乘以正数,将第二列每个数乘以负数,然后将结果相加。

1.3K10

Excel公式练习87:返回字符串第一块数字之后所有内容

1公式应该处理任意长度字符串任意长度数字——不仅仅是图1所显示长度。此外,不应该使用任何辅助单元格、中间公式或命名区域,或者VBA。 如何使用公式获得结果?...(注:本文来自于chandoo.org公式挑战栏目,供有兴趣朋友尝试学习。)...解决方案 如上图1所示,需要返回字符是蓝色粗体部分,即第一个文本和数字块之后文本和数字块,对于“Monaco7190Australia1484”返回是“Australia1484”。...问题难点在于有一个文本块,然后是一个数字块,接着是我们实际想要提取文本/数字块。因此,由于前面有一个文本/数字块,很难确定第二个文本/数字块位置。...0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;1} 6.然后需要做就是确定第一个1在这个数组位置 MATCH(1,{0;0;0;0;0;0;0;0;0;1;0

2.5K30
  • 最全总结 | 聊聊 Python 办公自动化之 Word(下)

    来控制 当值为 True 时,代表页眉页脚不同于首页,每个页面章节页眉、页脚都可以单独设置 当值为 False 时,所有页面的页眉、页脚都一样 # 1获取待处理页眉、页脚章节 header =...因此,这里我们可以使用 第一篇文章 方法创建一个「文字块样式」,然后以文字块 Run 形式,添加到页脚第一个段落中去 # 注意:要设置页眉页脚对齐方式,必须设置到段落上(文字块不能添加对齐方式)...特别内容标注 我们经常需要对文档中部分重要内容进行特别标注 比如,我们需要对文档包含「 微信 」字块或单元格,标为红色并加粗显示 1 - 段落内容 只需要遍历出段落中所有文字块 Run,直接修改文字块...Font 属性即可 doc = Document(file) # 关键字字块或单元格标红,并加粗 # 1、修改段落包含关键字文件块样式 for paragraph in doc.paragraphs...0) 2 - 表格内容 设置满足条件单元格样式有点特别,需要经过下面 4 个步骤 获取单元格对象,获取单元格文本内容,并临时保存 清空单元格数据 单元格对象追加一个段落一个文字块 Run,返回一个文字块对象

    2.5K10

    Excel公式练习89:返回字符串第一块数字之后所有内容(续2)

    引言:在《Excel公式练习87:返回字符串第一块数字之后所有内容》《Excel公式练习88:返回字符串第一块数字之后所有内容(续1)》,我们分别给出了解决这个问题两个公式,本文中,再次尝试着使用另一个公式来解决这个问题...图1公式应该处理任意长度字符串任意长度数字——不仅仅是图1所显示长度。此外,不应该使用任何辅助单元格、中间公式或命名区域,或者VBA。 如何使用公式获得结果?...解决方案 如上图1所示,需要返回字符是蓝色粗体部分,即第一个文本和数字块之后文本和数字块,对于“Monaco7190Australia1484”返回是“Australia1484”。...问题难点在于有一个文本块,然后是一个数字块,接着是我们实际想要提取文本/数字块。因此,由于前面有一个文本/数字块,很难确定第二个文本/数字块位置。...),"")),LEN(A2)) 公式解析 1.找出字符串每个数字出现位置: FIND(ROW(1:10)-1,A2) 解析为: FIND({1;2;3;4;5;6;7;8;9;10}-1,A2) 解析为

    2.1K20

    Python文件自动化处理

    os模块 Python标准库 操作系统有关操作 创建、移动、复制文件和文件夹 文件路径名称处理 路径操作 获取当前Python程序运行路径 不同操作系统之间路径表示方式  windows采用反斜杠...(\)作为文件夹之间分隔符  MacLinux采用斜杠(/)作为文件夹之间分隔符 把文件夹里面的文件夹里文件夹里文件都找出来: os.walk(xxx)  搜索匹配文件 字符串内置方法...指定行范围,按行获取,按列获取 .iter_rows(min_row=最低行数,max_row=最高行数,min_col=最低列,max_col=最高列)  Python向Excel表格写入内容...(Python列表)  插入一列 .insert_cols(idx=数字编号)  插入多列 .insert_cols(idx=数字编号,amount=要插入)  插入一行 .insert_rows...非Python标准模块,需要安装才能使用  获取文档对象   Document() 获得段落列表    doc.paragraphs 获取段落文字内容  paragraphs.text 获取字块列表

    7010

    移动设备上多位数字识别

    分割 使用轮廓查找器分割数字块,并将其调整为28×28,以便于识别。此外,系统还基于数字位置来计算哪些数字位属于同一个。 识别 使用CNN识别每个图像块数字。...在预处理,图像上Canny边缘特征计算结果被输入到轮廓查找器,绘制出每个特征边界框。边界框结果如图1(b)所示。...预处理后图像如图1(c)所示。 分割数字块 即使将图像尺寸调整为640×480,对于图像识别来说仍然太大。此外,用户可能想在同一页面上写多个数字,一次性找出每个数字是有用。...在第一步,我们使用轮廓查找器来定位每个数字位,并在每个数字位周围绘制边界框,然后通过计算比较数字位置,合并属于相同数字边界框。结果如图1(d)所示。...在第二步,我们使用空格从左到右扫描合并边界框(每列之间空列),分割出数字块数字块大小调整为28×28,所以它与CNN输入大小兼容。分段数字块如图1(e)所示。

    1.9K20

    Excel公式练习88:返回字符串第一块数字之后所有内容(续1

    1公式应该处理任意长度字符串任意长度数字——不仅仅是图1所显示长度。此外,不应该使用任何辅助单元格、中间公式或命名区域,或者VBA。 如何使用公式获得结果?...(注:本文来自于chandoo.org公式挑战栏目,供有兴趣朋友尝试学习。)...解决方案 如上图1所示,需要返回字符是蓝色粗体部分,即第一个文本和数字块之后文本和数字块,对于“Monaco7190Australia1484”返回是“Australia1484”。...问题难点在于有一个文本块,然后是一个数字块,接着是我们实际想要提取文本/数字块。因此,由于前面有一个文本/数字块,很难确定第二个文本/数字块位置。...图4 终于搞清楚了,第一个数组与第二个数组唯一一个相同数字交界地方就是第一个数字块结束第二个字母块开始地方。

    1.3K20

    【java】百行代码 实现2048小游戏

    游戏逻辑分析 2048大家都玩过,我就不介绍了,没玩过了可以去玩儿一下,直接说游戏逻辑 1.通过上、下、左、右移动,使相邻相同元素进行合并,进而数字相加得到 2048结果游戏。...2.每次生成得到数字块是 2或4 ,生成位置是在空白位置随机出现。...3.游戏最开始随机出现两个数字块 4.每次传入一个移动方向(上下左右),所有数字块都向该方向移动直到边界,相同两个数字块会合并成两之和变成一个数字块。...5.若移动后没有一个数字块发生位移则移动无效,不会产生新数字块。 6.当场景没有空位且无法移动则游戏失败。 7.游戏分数为场景内最大数字,当数字为2048时游戏结束。...;随机 private Tile tiles;数字块数组 存放全部数字块 private int side = 4;格子大小4*4 private State gamestate = State.start

    2K30

    用 Python 写文档批量翻译工具,效果竟然超越付费软件?

    基本需求:「批量将这些文档内容全部翻译成中文,并转存到新文件」,效果如下: ? 高级需求:基本需求满足同时,要求 「保留原文档格式」,效果如下: ? 二、逻辑梳理 1....可以看到,测试内容准确被翻译出来,注意如果需要多次访问 API,免费版有并发时间限制,可以用 time 模块睡眠一秒 2....格式修改 高级需求难点就是保留格式,简单来说原文档页面格式段落格式是什么,翻译后对应部分就是什么。 基于上述逻辑关系,只需要获取原文档对应内容再赋值给新翻译文档即可。...2.3 文字块样式修改 对于字号、加粗、斜体、颜色等样式调整,采取策略是建立空列表,遍历原文档每一段每一个文字块获取相应属性并放到各自列表,对同一段而言,其包含字块属性最多选项赋值给翻译后文档对应段落...整体实现步骤 现在每个部分操作均以完成,考虑到本例中有多个文档均需要翻译,故全部逻辑如下: 利用 glob 模块批处理框架可获取某个文件绝对路径 由 python-docx 完成 Word 文件实例化后对段落进行解析

    2.2K41

    计算机组成原理:4. 存储器

    例如,当地址线为全 0 时,译码输出 X_0 Y_0 有效,矩阵0 行、第 0 列共同选中那位即被选中。 由于被选单元是由 X、Y 两个方向地址决定,故称为重合法。...这些检测位位置设置是为了保证它们能分别承担 n + k 位信息不同数位所组成“小组”奇偶检测任务,使检测位和它所负责检测小组 1 个数为奇数或为偶数,具体分配如下: 每个小组 g_i:有且仅有一位为它所独占...主存字块标记就是主存分区号; 分区内块号就是cache字块地址; 字块内地址就是字块偏移地址,在Cache主存相同,不用处理。...以第0块为例:由于cache0块装可能是主存任意一个分区0块,所以需要比较主存字块标记cache上标记是否相同,如果相同则说明命中。...它需要随时记录 Cache字块使用情况,以便确定哪个字块是近期最少使用字块。 它实际是一种推测方法,比较复杂,一般采用简化方法,只记录每个块最近一次使用时间。

    1.7K20

    计算机组成原理:第三章 存储系统

    直接映射 将主存字块进行分区,每个分区大小cache大小相同,主存第j块字块只能放在cache第i块,i = j mod C,C为cache。...主存字块标记就是主存分区号;分区内块号就是cache字块地址;字块内地址就是字块偏移地址,在Cache主存相同,不用处理。...以第0块为例:由于cache0块装可能是主存任意一个分区0块,所以需要比较主存字块标记cache上标记是否相同,如果相同则说明命中。...首先将cache分为Q组,同时将主存进行分区,每个等于cache每个第i块只能放在cache第i组,但是在组位置可以任意。...,已知每次按照块来交换Cache内存数据,每块16个数字,对于程序A,按照行来遍历,其中第一个数字未命中(交换),剩下15个元素都可以命中,所以命中率为15/16,而程序B命中率为0

    1.7K20

    python自动化办公——python操作Excel、Word、PDF集合大全

    ① sheet[“A1”]方式          ② sheet.cell(row=, column=)方式        6)获取某个格子行数、列、坐标        7)获取一系列格子....value) """ workbook.active 打开激活表格; sheet["A1"] 获取A1格子数据; cell.value 获取格子值; """ 结果如下:   ② sheet.cell...():插入空行空列  .insert_cols(idx=数字编号, amount=要插入),插入位置是在idx列左侧插入;.insert_rows(idx=数字编号, amount=要插入行数...delete_cols():删除行列  .delete_rows(idx=数字编号, amount=要删除行数).delete_cols(idx=数字编号, amount=要删除)  workbook...判断:将列表每个元素都连接成一个字符串,如果还是一个空字符串那么肯定就是空行。

    1.8K00

    最全总结 | 聊聊 Python 办公自动化之 Word(

    )) 1 - 段落内容 我们可以遍历文档中所有的段落列表,通过段落对象 text 属性,获取全部段落内容 # 0、读取所有段落数据 contents = [paragraph.text for...文字块 - Run 文字块 Run 属于段落一部分,所以,要获取字块信息,必须先拿到一个段落实例对象 以文字块基本信息、字体格式信息为例 1 - 文字块基本信息 我们使用段落对象 runs 属性获取段落内所有的文字块对象...文字块是文档中最小文字单元,使用文字块对象 font 属性可以拿到它字体属性 设置文字块格式属性一一对应,字体名称、大小、颜色、是否加粗、是否斜体等都可以获取到 # 2、文字块格式信息...) print('文档包含表格数量:', table_num) 1 - 表格所有数据 获取表格中所有数据有 2 种方式 第一种方式:通过遍历文档中所有表格,然后按行单元格进行遍历,最后通过单元格...= table.rows datas = [] # 每一行获取单元格数据组成列表,加入到结果列表 for row in rows: datas.append

    2K20

    星辰秘典:揭开Python项目的神秘密码——2048游戏

    在这篇博客,我将和你分享一些我用Python写图形项目,包括它们原理,代码效果。我希望你能从中学到一些有用知识,也能感受到编程乐趣。...玩家需要通过合并相同数字方块,不断合成更大数字,最终达到2048方块,挑战自己智力策略。 项目功能 1. 游戏界面:提供一个可视化游戏界面,显示2048方块网格当前得分。 2....通过使用Python图形界面库(例如Pygame、Tkinter等),创建游戏界面,并使用数据结构(如列表、数组等)存储操作游戏方块数字位置信息。...TEXT_COLOR) window.blit(score_text, (10, GRID_HEIGHT + 10)) def draw_text(value, rect): # 绘制方块数字...2048 游戏项目是一个有趣益智游戏,通过合并方块数字来挑战自己智力策略。

    10910

    九键输入组合与四之和——LeetCode 16、17 题记

    ,table[该数字]取到对应字母串,转成列表 lst = list(table[digits[0]]) # 获取输入数字串长度用于遍历 l = len(...找出所有满足条件且不重复四元组。 注意:答案不可以包含重复四元组。 示例 给定数组 nums = [1, 0, -1, 0, -2, 2], target = 0。.../problems/4sum 思路 昨天刚做完两道求和相关题目,当时思路是遍历第一个,对剩下两个数通过双指针法进行定位。...今天这题目虽然是四之和,但倘若我们把第一个抽出来、那也就还原成了三之和问题,所以解决方法就是对第一个进行遍历,在其后范围内遍历第二个,剩下第三第四个用双指针法来定位。...nums[j] # x y 双指针代表第三第四个 x,y = j+1,l-1 # while 循环双指针缩小范围以获取能达到目标组合

    72030

    Android OCR文字识别 实时扫描手机号(极速扫描单行文本方案)

    stream.size()); 这样直接提取需要区域,就节省了整张图片旋转第二次裁切时间 2、旋转、二值化 图片,过滤无用内容 接下来旋转二值化,是纯像素算法,如果能放在jni实现更好...捕捉到有 11 位字符字块,取到文字块精准位置,交给tess-two解析 图2:捕捉到有 12 位字符字块,不符合手机号码特征,则不进行位置获取内容识别,直接跳过 之前算法还有一些缺陷...,导致tesseract 无法识别 这里解决办法就是:通过递归算法,获取每一个字符精准位置,在获取位置过程,如果发现宽度或高度延伸到了不合理范围,即视为被水印干扰字符,先跳过这个字符,继续捕捉下一个...,直到捕捉到一个没有发现干扰字符,就可以确定这个文字块每个字符正确宽高,这时从头再遍历一次,根据正确宽高范围来清除水印部分像素 public class TesseractUtil {...,则很有可能这里被水印之类干扰了,那就把超出正常范围像素色值变成-2,颜色白色很接近,会被当作背景色,相当于清除了干扰,不直接变成-1是为了在其他数字被误判为干扰水印时,可以还原) private

    9.2K21

    别再问我Python怎么操作Word了!

    通常情况下可以这么理解,但假如这个短句子中有多种不同 样式,则会被划分成多个文字块,以图中第一个黄圈为例,如果给这个短句添加一些细节?...此时就有4个文字块,同时有时候一个Word文档是存在表格,这时就会新文档结构产生 这时结构非常类似Excel,可以看成Document - Table - Row/Column - Cell四级结构...保存文件 对文档修改创建都切记保存 wordfile.save(...) ... 放需要保存路径 3. 添加标题 wordfile.add_heading(…, level=…) 4....0) # 字体颜色 3....段落样式设置 默认对齐方式是左对齐,可以自行修改 小结 以上就是如何用Pythondocx模块实现Word常用操作,只要明白什么类型操作可以用Python执行,并能在之后遇到繁琐任务时想到使用

    1.3K11

    看完这篇Python操作PPT总结,从此使用Python玩转Office全家桶就没有压力了!

    这里docx模块相同 三、前置知识 1. 基本结构 再看一下ppt结构组成,会较word复杂许多。当然这也跟ppt高度自定义拓展性有关 ?...创建 PPT 文件基本思路 创建一个 PPT 从幻灯片母版确定一个版式 在不同占位符填写不同内容 添加图片、表格等额外内容 对样式进行修改 四、Python读取PPT 1.打开PPT文件 from...获取形状 只要熟悉了类似 Excel Word 多级结构, PPT 结构就很好理解了。...获取文本框内容 要获取文字内容,很容易就联系到文字在形状 shape 下级结构了 从 Word 学习我们也可以推知,文字承载单位是 段落 paragraph和文字块 run 很自然可以想到用下列代码获取文字...Word 文件代码,实例化过程不给予具体路径则为创建空白文件 1.

    7.4K51

    快速入门开发实现订单类图片识别结果抽象解析

    图片矫正后,调用图片识别服务获取结果,一般结果格式包括响应码、错误描述、文字块列表(文字四点坐标)等。 然后使用抽象俄罗斯方块法根据识别结果获取行列信息。 最后根据行列信息组装每一行数据并显示。...然后根据每一个字块四角坐标判断出每个字块倾斜角。 再根据去燥算法算出平均倾斜角。...,分出横线竖线,根据配置计算出每条线角度 使用去噪声算法(需要根据非0自动重复计算)算出平均倾斜角度 使用opencv旋转图片 核心代码如下: /** * 矫正图片,通过霍夫变换矫正...前期要开发订单图片类型巨量(大于100种),每一类图片区别很大,我们有几个人分类型开发,但每个人所用方法都不同,且张三开发出来李四看不懂,不过毕竟面对是图片,比较抽象,这是可以理解。...(yy3 = (y3 - threhold))) { // 当前列表数据重叠,说明换列了!!!!!!

    2.1K980
    领券