Ich bin mir nicht sicher, was Sie genau machen wollen. Wenn Sie nur die Wörter erhalten möchten, die nicht in Ihrer Liste enthalten sind, verwenden Sie einfach text.get("1.0","end")
, um den Inhalt des Text-Widgets zu erhalten. Teilen Sie es dann in Wörter und prüfen Sie, ob jedes Wort in Ihrer Liste enthalten ist.
Edit: Wenn Sie den Index des ersten Buchstaben jedes Wortes in der Liste nicht möchten, können Sie etwas wie das
def indices(word_list):
""" return the index of the first letter of each word
in the text widget which is not in word_list """
lines = text.get("1.0", "end").split("\n")
index = []
for i, line in enumerate(lines):
words = line.split()
if words:
if not words[0] in word_list:
index.append("%i.0" % (i+1))
for j in range(1, len(words)):
if not words[j] in word_list:
index.append("%i.%i" % (i+1, 1 + len(" ".join(words[:j]))))
return index
ich in dieser Funktion angenommen, dass es nie ein weißer Raum am Anfang tun einer Linie.
Der erste Index sollte "1.0" ', nicht" 0.0 "sein. Zeilennummern beginnen mit 1 (eins). –
habe ich nie bemerkt, weil es keinen Fehler verursacht. –
Es wird kein Fehler ausgegeben, aber es ist immer noch falsch. Tkinter verzeiht schlechte Indizes ein wenig, aber Sie sollten immer danach streben, wenn immer möglich, einen geeigneten Index zu geben. –