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

如果阅读每个单词,如何在While循环中删除重复项

在While循环中删除重复项的方法可以使用一个列表来存储已经出现过的单词,然后在每次循环中判断当前单词是否已经在列表中出现过,如果是则将其从列表中删除,否则将其添加到列表中。以下是一个示例代码:

代码语言:txt
复制
words = ["apple", "banana", "apple", "orange", "banana", "grape"]
seen = []

i = 0
while i < len(words):
    if words[i] in seen:
        del words[i]
    else:
        seen.append(words[i])
        i += 1

print(words)

运行以上代码,输出结果为:['apple', 'banana', 'orange', 'grape'],可以看到重复的单词已经被删除。

在这个例子中,我们使用了一个列表seen来存储已经出现过的单词。在每次循环中,我们首先判断当前单词words[i]是否已经在seen列表中出现过,如果是则将其从words列表中删除,否则将其添加到seen列表中,并且将循环索引i加1。这样就可以在循环中删除重复项。

需要注意的是,删除列表中的元素会改变列表的长度,因此在删除元素后,循环索引i不需要加1,因为下一个元素会自动占据被删除元素的位置。

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

相关·内容

JAVA语言程序设计(一)04747

每个0或者每个1都叫做是bit 二进制的计算,除2除到余数为一,一算到最后一位,结果需要倒过来。...标识符 图中的HellowWord就是标识符 标识符可以包含 英文、0-9数字、$、下划线 不能以数字开头 不能有关键字 建议命名方式 首字母大写、后面每个单词的首字母都大写 首字母小写,后面每个单词的首字母都大写...如果一定要使用float类型,需要加上一个后缀F。 如果是整数,默认为int类型,需要在后面加上一个后缀L。...,而且只做唯一一次 条件判断:如果成立,则坏继续,不成立坏退出 坏体:重复做的事情内容,若干行语句 步进语句:每次坏之后要进行的扫尾工作,每次坏结束都要这样 forwhile...坏 标准格式 while(条件判断){ 坏体 } 先执行初始表达式,看布尔表达式,满足就执行坏体跟步进表达式 do while 初始化语句 do{ 坏体 }while(

5.1K20
  • Python数据容器:集合

    通过特性来分析:列表可修改、支持重复元素且有序元组、字符串不可修改、支持重复元素且有序我们发现列表、元组、字符串这三个数据容器局限在于它们都支持重复元素。...如果场景需要对内容做去重处理,列表、元组、字符串就不方便了。而集合最主要的特点就是不支持元素的重复(自带去重功能)并且内容无序。...)数据是无序存储的(不支持下标索引)不允许重复数据存在支持for坏,不支持while坏# 定义集合my_set={"A","B","C","B","A"}# 定义一个空集合my_set_empty=...for坏遍历:# 集合的遍历# 集合不支持下标索引,所以不能用while坏,可用for坏set1={1,2,3}for element in set1: print(f"集合的元素有{element...新闻', '传播', '新闻', '传播', 'Hi', 'Python', 'Hi', 'Python', 'best',请按如下要求操作:1.定义一个空集合2.通过for循环遍历列表3.在for循环中将列表的元素添加至集合

    8031

    上手Python之列表

    数据容器 为什么学习数据容器 思考一个问题:如果我想要在程序中,记录5名学生的信息,姓名。 如何做呢?...数据容器根据特点的不同,: 是否支持重复元素 是否可以修改 是否有序, 等 分为5类,分别是: 列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict) 什么是数据容器...答:字符串变量 思考:如果一个班级100位学生,每个人的姓名都要存储,应该如何书写程序?声明100个变量吗?...5 列表.pop(下标) 删除列表指定下标元素 6 列表.remove(元素) 从前向后,删除此元素第一个匹配 7 列表.clear() 清空列表 8 列表.count(元素) 统计此元素在列表中出现的次数...可以使用前面学过的while循环 如何在环中取出列表的元素呢? 使用列表[下标]的方式取出 循环条件如何控制?

    4.3K10

    Leetcode 【583、809、816】

    Delete Operation for Two Strings 解题思路: 这道题目是给两个单词 word1 和 word2,每次只能从中删除一个字符,最后两单词相等,求最少删除次数。...两个单词通过删除某些字符最后相等,而且要求删除次数最少,很明显最后相等的单词是两个原来单词的最长公共子序列。因此,这道题变成了求解两单词的最长公共子序列问题。...Expressive Words 解题思路: 这道题是给一个字符串S和一个单词数组,S是数组中的单词通过重复某些字符至少三次得到的,找到符合的单词。...注意: S = "helllo",那么 "helo"、"hello"、"helllo" 这些单词都是符合 S 的。...i = 0 while i < len(ans): # 非法的整数部分:整数部分长度大于2且以0开头, 001、023.01

    58720

    sed的用法详解

    '/^$/' a.txt 删除重复空行 以上所有动作需要加 -i 替换文本 sed ‘s/xml/XML/’ a.txt 将每行的第一个xml替换为XML sed 's/xml/XML/3' a.txt...sed -i 's/.//2;s/.$//' a.txt 删除每行第二个和最后一个单词 sed -r 's/[a-Z]+//2;s/[a-Z]+([^a-Z]*)$/\1/' a.txt 将文件中每行的第一个和第二个字符互换...\1\4/' a.txt 删除所有的数字和行首的空格sed -r ‘s/[0-9]//g;s/^( )+//’ a.txt 为每个大写字母添加括号 sed -r s/[A-Z]/(&)/g a.txt...:whilewhile(条件) do while循环dowhile(条件) for循环: for(初值;条件;步长) cat sshd.txt |awk '}' 统计/etc/passwd中root...a[$0]++' filename a为数组名 $0为处理对象 表示要去除的是整行重复的内容,如果要去除的是字段重复的行,可以将$0改为$1 $2 提取测试文件:awk -F: '' /etc/passwd

    4.2K31

    第一章习题

    如果程序不合法,原因何在?应该如何修正? 答:不合法。第一行和第二行的输出流被分号终止了。...练习 1.8 :指出下列哪些输出语句是合法的(如果有的话),并预测编译这些语句会产生什么样的结果,实际编译这些语句来验证你的答案(编写一个小程序,每次将上述一条语句作为其主体),改正每个编译错误。...std::cout << "Write new master." std::endl; // 错误: return 语句漏掉了分号 return 0 } 类型错误: c++中每个数据都有其类型...1.4.4 节练习 练习 1.17 : 如果输入的所有值都是相等的,本节的程序会输出什么?如果没有重复值,输出又会是怎样的?...1.18 : 编译并运行本节的程序,给它输入全都相等的值,再次运行程序,输入没有重复的值。

    94140

    Shell笔记5:sed用法详解

    '/^$/{n;/^$/d}' a.txt 删除重复空行 以上所有动作需要加 -i 替换文本 sed ‘s/xml/XML/’ a.txt 将每行的第一个xml替换为XML sed 's/xml/XML...sed -i 's/.//2;s/.$//' a.txt 删除每行第二个和最后一个单词 sed -r 's/[a-Z]+//2;s/[a-Z]+([^a-Z]*)$/\1/' a.txt 将文件中每行的第一个和第二个字符互换...\1\4/' a.txt 删除所有的数字和行首的空格sed -r ‘s/[0-9]//g;s/^( )+//’ a.txt 为每个大写字母添加括号 sed -r s/[A-Z]/(&)/g a.txt...:whilewhile(条件){编辑指令} do while循环do{编辑指令}while(条件) for循环: for(初值;条件;步长){编辑指令} cat sshd.txt |awk '{for...a[$0]++' filename a为数组名 $0为处理对象 表示要去除的是整行重复的内容,如果要去除的是字段重复的行,可以将$0改为$1 $2 提取测试文件:awk -F: '{print $7}'

    1.3K10

    关于“Python”的核心知识点整理大全14

    例如,在游戏中,多种事件都可能导致游戏结束,玩家一艘飞船都没有了或要保护的城市 都被摧毁了。导致程序结束的事件有很多时,如果在一条while语句中检查所有这些条件,将既 复杂又困难。...在while环中,我们在用户输入后使用一条if语句来检查变量message的值。如果用户输入 的是'quit'(见3),我们就将变量active设置为False,这将导致while循环不再继续执行。...如果当前的数字不能被2整除,就执行循环中 余下的代码,Python将这个数字打印出来: 1 3 5 7 9 7.2.6 避免无限循环 每个while循环都必须有停止运行的途径,这样才不会没完没了地执行下去...如果程序陷入无限循环,可按Ctrl + C,也可关闭显示程序输出的终端窗口。 要避免编写无限循环,务必对每个while循环进行测试,确保它按预期那样结束。...在这个循环中,3处的函数pop()以每次一个的方式从列表 unconfirmed_users末尾删除未验证的用户。

    11610

    嵌入式开发既要代码小,又要速度快!程序该如何优化?

    一、程序结构的优化 1、程序的书写结构 虽然书写格式并不会影响生成的代码质量,但是在实际编写程序时还是应该尊一定的书写规则,一个书写清晰、明了的程序,有利于以后的维护。...2、标识符 程序中使用的用户标识符除要遵循标识符的命名规则以外,一般不要用代数符号(a、b、x1、y1)作为变量名,应选取具有相关含义的英文单词(或缩写)或汉语拼音作为标识符,以增加程序的可读性,:...如果是求3 次方,: a = pow(a, 3.0); 更改为: a = a * a * a; 则效率的改善更明显。.../用户程序 } 或: unsigned int i; i = 1000; do { i--; //用户程序 } while (i>0); 在这两种循环中,使用do…while循环编译后生成的代码的长度短于...如果直接生成所需的表比较困难,也尽量在启动时先计算,然后在数据存储器中生成所需的表,后以在程序运行直接查表就可以了,减少了程序执行过程中重复计算的工作量。

    1.6K30

    LeetCode刷题记录(easy难度1-20题)

    如果不相等就不是回文,如果每个下标和对称位都相等就是回文,简单点可以直接从0循环到n-1,此时时间复杂度是O(N),但其实只需要循环到一半即可,因为如果超过一半就会重复了,没有任何意义。...这里也一样,我们首先假设最长共同前缀为最短字符串的前1个字符,在内循环中判断每个字符的前i+1个子字符串是否等于假设的最长共同前缀,如果不相同,我们还需要判断当前i+1是否等于1,如果等于,那就是第一个字符都不相同...题意分析: 题目要求我们求字符串中最后一个单词的长度,并且这个字符串每个单词之间是由空格连接,当最后一个单词不存在时,返回0。...题意分析: 在一个已排序的单链表中,删除所有重复的元素,每个元素只能保留一个 思路分析 为了删除重复元素,我们需要遍历整个单链表,又由于我们不知道循环的次数,只知道结束条件为结点为空,所以我们需要使用while...循环, 在循环中我们还需要嵌套一层while循环,判断当前结点的下一个结点是否存在并且下一个结点的值是否等于下下个结点的值,如果等于就将下下个结点赋值给当前结点的下一个结点。

    1.3K40

    Effective-java-读书笔记之通用程序设计

    第57条 将局部变量的作用域最小化要使局部变量的作用域最小化, 最有力的方法就是在第一次使用它的地方声明.几乎每个局部变量的声明都应该包含一个初始化表达式..... -> 优于while循环.方法应该小而集中.第58条 for-each循环优先于传统的for循环for-each循环(增强型for循环)在简洁性和预防Bug方面有着传统for循环无法比拟的优势, 并且没有性能损失..., 应该尽可能地使用for-each循环.增强型for循环中的:读作in.但是有三种情况无法使用for-each循环:过滤删除.转换更新....因为JVM实现变得越来越快了.使用本地方法有一些缺点: 不安全; 与平台相关, 不可自由移植; 更难调试; 进入和退出本地代码时需要相关的固定开销; 需要胶合代码的本地方法编写起来单调乏味, 且难以阅读...(很少使用数字), .分隔.类, 接口: 一个或多个单词, 首字母大写.方法和域, 局部变量: 首字母小写.常量域: 一个或多个大写的单词, 下划线分隔.类型参数: 单个字母: T表示任意的类型, E表示集合元素类型

    44050

    算法修炼之筑基篇——筑基二层后期(初步理解解决贪心算法)

    ✨例题:删除字符 题目分析 先解释一下题目描述避免一些小伙伴们不理解 给定一个单词,请问在单词删除 tt 个字母后,能得到的字典序最小的单词是什么?...具体来说,题目要求在原始单词删除 t 个字母,使得得到的新单词在字典序上尽可能靠前,也就是说新单词应该是按照字母顺序最小的。...例如,假设给定的单词是 "example",如果删除 2 个字母,我们可以得到以下可能的新单词: "eample":删除了第一个 "x" 和 "p"。...题目的意思是找到在给定单词删除 t 个字母后,得到字典序最小的新单词。具体删除哪些字母没有指定,可以自由选择,只需确保得到的新单词在字典序上最小。...例如,如果有一个字符串 str = "abcdef",执行 str.erase(2, 1),就会删除字符串中位置为 2 的字符,结果为 "abdef"。

    8410

    【c++】二叉搜索树(BST)

    在循环中使用变量cur作为当前节点,变量parent作为cur的父节点 节点匹配: 当找到与key匹配的节点后: 如果该节点没有左子节点(cur->_left == nullptr), 那么它的右子节点直接替换它...比如,如果删除节点是其父节点的左子节点,那么父节点的左指针应该指向待删除节点的相应子节点 最后,如果在树中找到并成功删除了key对应的节点,则函数返回true。如果没有找到,则函数返回false。...比如:给一个单词word,判断该单词是否拼写正确,具体方式如下: 以词库中所有单词集合中的每个单词作为key,构建一棵二叉搜索树 在二叉搜索树中检索该单词是否存在,存在则拼写正确,不存在则拼写错误...感谢阅读!!...感谢阅读!!

    6200

    在ArrayList的循环中删除元素,会不会出现问题?

    ,可以删除重复的元素,但不推荐 // Iterator iterator = list.iterator(); // while (iterator.hasNext()) {...也欢迎你点击文末的 “阅读全文”,留言和我们讨论哦! 上面这几种删除方式呢,在删除 list 中单个的元素,也即是没有重复的元素, “cc”。...而在删除 list 中重复的元素时,会有这么两种情况,一种是这两个重复元素是紧挨着的, “bb”,另一种是这两个重复元素没有紧挨着, “aa”。...在下一次循环中 i = 2,第二个 “bb” 元素就被遗漏了,所以这种删除方法在删除连续重复元素时会有问题。 ?...循环中的正序删除.jpg 但是如果我们使 i 递减循环,也即是方法二的倒序循环,这个问题就不存在了,如下图。 ?

    2.9K20

    Python中的循环:遍历列表、元组、字典和字符串

    回到编程,如果给您一个整数值列表,并要求对每个进行平方,然后再加5,最后报告结果——这就是一个循环的例子。 我们可以循环什么? 那么我们可以循环什么呢?...关键的区别是: for循环对iterable对象中的每个元素进行有限次数的迭代 while循环一直进行,直到满足某个条件 遍历列表 遍历一个列表非常简单。给一个值列表,并要求对每个做一些事情。...同样,也可以遍历句子中的每个单词。但是在这种情况下,需要一个额外的步骤来分割句子。...循环 与for循环类似,while循环重复执行一个代码块——只要条件为真。...Break 如果在循环中存在break语句,则在满足条件时终止循环。

    12.1K40

    CodeWave系列:5.CodeWave 智能开发平台 逻辑功能实现

    逻辑流转: 逻辑有开始和结束节点,每个逻辑由多个逻辑组成,逻辑按照开始到结束的顺序流有序执行。...页面中多个事件要完成同样的操作或功能,可将重复的部分放到页面逻辑中,在不同的事件逻辑中进行调用 2.2 服务端逻辑 特有组件: 服务端逻辑是服务端逻辑,可以在整个应用范围内使用。...然后再各分支下拖入文本原子项输入各枚举值对应显示的颜色,支持简单单词和十六进制颜色码两种方式。 (4)退出动态绑定后,发布预览效果,效果如下图所示。...(3)拖拽内置函数放置在while环中,选择Add,并将局部变量listint放置在list参数中。...(6)在foreach循环中,放置内置函数Add,并将局部变量listintAdd放置在list参数中,在item参数中拖拽算数运算“+”,左侧选择item,表示列表的,右侧放置数字原子项并输入5,表示给每一都加

    15510

    SQLSERVER 存储过程 语法

    用户自定义存储过程是由用户创建,并能完成 某一特定功能,:查询用户所需数据信息的存储过程。   ...3.存储过程能够减少网络流量    对于同一个针对数据数据库对象的操作,查询修改,如果这一操作所涉及到的Transaction-SQL 语句被组织成一存储过程,那么当在客户计算机上调用该存储过程时...Delete 语句每次删除一行,并在事务日志中为所删除的每行记录一。TRUNCATE TABLE 通过 释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。...TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用 的计数值重置为该列的种子。如果想保留标识计数值,请改用 Delete。...如果删除表定义及其数据,请 使用 Drop TABLE 语句。

    2.6K20

    python笔记(一)

    字符串处理 单双引号一样 .title():将每个单词的首字母变为大写,其余小写(不管原来是什么样) .upper():将字符串中所有字母变为大写 .lower():将字符串中所有字母变为小写 .strip...:del VAR[索引位置](后边的索引会顶替删除的索引) .remove(值):根据值删除,只删除一次就停止,如果删除多个同样的值需要用循环判断是否删除干净 弹出列表中最后一个元素:.pop()(弹出的元素可使用...print("\n" + name.title() + "'s favorite languages are:") for language in languages:(循环中包含循环...循环: while 判断条件:(可以是True或False(首字母大写)) continue break while和列表搭配: while...,但只删第一个,后头再有重复的不管,当想要删除列表中多个重复的值时,使用while来进行删除 while 'cat' in pets:

    1.5K30
    领券