Der Zweck meines Programms besteht darin, Positionen von Iterationen von Wörtern in einem Satz zu finden, und die fehlerhafte Subroutine geht wie folgt.Abrufen mehrerer wiederholender Positionen von Strings in der Liste
def analyse(splitString):
wordToSearch = input("What word are you searching for instances of? ").lower()
for word in splitString:
positionLibrary = ""
positionInSplitString = 0
instances = 0
if word == wordToSearch:
position = splitString.index(word)
positionLibrary += str(position)
print (position, word)
instances += 1
positionInSplitString += 1
return (positionLibrary, instances, wordToSearch)
Let „split“ sind die Listenform des Satzes „IST DIE VERÄNDERUNG MOTION HAUPT proportional zur MOTIVE FORCE IMPRESSED und in der rechten Linie geleistet, an dem diese Kraft impressed“. Wenn ich nun in splitString nach "imprinted" suche, gibt es What word are you searching for instances of? impressed 11 impressed 11 impressed ['the', 'alteration', 'of', 'motion', 'is', 'ever', 'proportional', 'to', 'the', 'motive', 'force', 'impressed', 'and', 'is', 'made', 'in', 'the', 'right', 'line', 'on', 'which', 'that', 'force', 'is', 'impressed'] wordToSearch impressed instances 1 positionLibrary 11
zurück, was mir sagt, dass das Programm irgendwie weiß, dass es 2 Instanzen von "imprimed" gibt, zählt aber nicht die Anzahl dieser Variablen in die Variable "instances" unzuverlässig und funktioniert nicht.) positionLibrary, die (als String) eine Aufzeichnung der Positionen der gefundenen Instanzen speichern soll, funktioniert nicht. Ich glaube, das liegt daran, dass das Programm nur die Position des ERSTEN INSTANZS von "beeindruckt" zurückgibt, wie in gezeigt.
Nun, wie würde ich das Programm tatsächlich alle Positionen nach der ersten Instanz eines Wortes zurückgeben und die Variable "Instanzen" arbeiten lassen? Ich habe weit und breit gesucht und keine Lösung gefunden.
Empfehlung: Ändern Sie den Namen 'analysieren (split, wordToSearch)' etwas hilfreicher wie 'index_multiple (iterable, value) '. – Kupiakos
@Kupiakos Ich kopiere einfach den Code des OP :-), aber ich stimme dir zu, dass es besser sein könnte. –