我想做一个程序,检测重复的话,如下面的例子:
“必须至少输入一个值
以计算平均值”
我们可以看到“entered”重复出现,我想找到一种方法来检测这种情况。\
archivo = str(input("Ingrese la ubicación del archivo: "))
inf = open(archivo, "r")
lineas = inf.readlines()
lin = []
for a in lineas:
lin.append(a.strip())
cadena = ' '.join([str(item) for item in lin])
list_cadena = cadena.split()
我已经这样做了,但我不知道如何检测重复的单词,因为它们可能在同一行,也可能发生一个在一行文本的末尾,另一个在下一行文本的开头,如示例所示
4条答案
按热度按时间pgky5nke1#
str.strip()
用于删除空格。您需要使用str.split()
来将单词分隔成列表。要获得所有单词的平面列表,请在构建列表时使用extend()
而不是append()
(否则您将获得列表的列表)。with
语句在这里很有用,这样您就不必手动关闭文件。当你有了单词列表,你可以遍历它,并将每个单词与前一个单词进行比较,如果它们相同,就触发一些动作(例如打印输出):
当我保存你的例子时
必须至少输入一个值
以计算平均值
作为文本文件,运行上面的代码并输入文件名作为输入,输出为:
重复的单词:在索引7处“输入”。
jdzmm42g2#
这段代码使用了一个for循环,在按每个空格拆分字符串时检查所有的单词。然后将它们打印出来,当然你可以改变它来做任何事情。
uubf1zoe3#
输出:
在位置6处输入了重复单词
在位置7处输入了重复单词
fd3cxomn4#
使用
itertools.pairwse
(Python ≥ 3.10):pairwise
配方 *输入:
输出:
['one', 'entered']