首页
学习
活动
专区
工具
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.6K10

    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中采用反斜杠...(\)作为文件夹之间的分隔符  Mac和Linux中采用斜杠(/)作为文件夹之间的分隔符 把文件夹里面的文件夹里的文件夹里的文件都找出来: 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 获取文字块列表

    7410

    移动设备上的多位数字识别

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

    2K20

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

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

    1.3K20

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

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

    2.3K41

    【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

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

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

    1.9K20

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

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

    1.8K20

    最全总结 | 聊聊 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

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

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

    9.3K21

    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.9K00

    九键输入组合与四数之和——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 循环双指针缩小范围以获取能达到目标和的组合

    73830

    Gemini代码助手审查:代码补全需要改进

    和以前一样,我将对我的项目进行实际更改,并查看代码补全的行为。我的游戏项目使用随机数,但我需要从列表中获取它们,以便能够就地生成它们,或者使用预先准备好的数字集进行测试。...由于在开发过程中获取数字的调用顺序可能会发生变化,我需要确保每次调用都从列表中获取固定的索引,此外还要检查我是否不会意外地两次获取相同的数字。但是,这在循环中很难管理,所以我返回一个数字块。...Gemini 建议了一行打印索引和值的日志行,但忽略了我的列表直接使用的转换为“converted”的部分。...Gemini 明智地强调使用 command-i 的“智能操作”,它介于代码补全和尝试为你编写大量代码之间: 我首先要求 Gemini 对选定的方法进行“解释”,也就是请求随机数块的地方。...它大约花了 10 秒钟(相当长)才生成输出: “RequestNewIndexedBlock 方法旨在为游戏的不同部分提供一种方式,以请求并‘预留’来自 RandomNumber 系统的预先生成或随机生成的特定数字块

    7910

    星辰秘典:揭开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 游戏项目是一个有趣的益智游戏,通过合并方块数字来挑战自己的智力和策略。

    15810

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

    通常情况下可以这么理解,但假如这个短句子中有多种不同的 样式,则会被划分成多个文字块,以图中的第一个黄圈为例,如果给这个短句添加一些细节?...此时就有4个文字块,同时有时候一个Word文档中是存在表格的,这时就会新的文档结构产生 这时的结构非常类似Excel,可以看成Document - Table - Row/Column - Cell四级结构...保存文件 对文档的修改和创建都切记保存 wordfile.save(...) ... 放需要保存的路径 3. 添加标题 wordfile.add_heading(…, level=…) 4....0) # 字体颜色 3....段落样式设置 默认对齐方式是左对齐,可以自行修改 小结 以上就是如何用Python中的docx模块实现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.7K51
    领券