我正在尝试清除文本字段中的重复项(每个项都在文本字段中的新行上)。我的逻辑是:对文本字段调用get(),插入到列表中,然后运行一系列公认缓慢的嵌套循环来检查重复项,然后重新填充文本字段
有人能帮我评估一下我的逻辑,告诉我为什么这不起作用吗
def checkDup(self):
clean = []
dirty = O1.get("1.0", END+'-1c').split("\n")
for i in dirty[1:]:
if i not in clean:
clean.append(i)
clean.append("\n")
O1.delete("1.0", END)
O1.insert(END, clean)
我会使用for循环的相同逻辑来检查重复项。。也许有更好的方法可以做到这一点,但目前在我们的水平上,我认为这是一个好的开始
查看代码:
为什么要从列表中的第一项之后开始,是否需要将其排除在外?如果是这样,您将使用以下方法删除它:
您可能需要将代码更改为01。如果需要保留第一行,请删除('2.0',END)
在这里,您正在创建一个较长的列表,其中包含一组新行,每个新行都被视为列表的一员,很有趣。。我把这部分搞砸了。。经过测试,我发现你的结果只有我的一半奇怪
最后一行:您直接在小部件中推送已更正的列表,这会导致一个奇怪的结果
把那个修好01.insert(END,''.join(clean))这将把你的列表分成一个包含你先前插入的换行符的字符串,将所有文本放在正确的位置
相关问题 更多 >
编程相关推荐