Ich habe eine Funktion, die eine Liste und entfernt (eine Instanz von) die kleinsten und größten Elemente, dann nimmt den Durchschnitt der übrigen Elemente. Das Ausführen von es bringt keine Fehler, obwohl bei der Überprüfung der Ergebnisse erkannte ich, dass sie falsch waren. Hier ist das Programm:Index 1/2. Listenelement wird ohne ersichtlichen Grund übersprungen
def centered_average(x):
x.sort()
y = 0
for i in x:
if x.index(i) == 0 or x.index(i) == (len(x)-1):
print(i, "is being removed")
x.remove(i)
i +=1
else:
y += i
print(i, "is being added")
return (y/len(x))
def average(x):
return sum(x)/len(x)
über die Umsetzung durch eine Liste von
x = [1,2,3,4,5]
das Ergebnis war (die Druckfunktionen wurden zur Überprüfung gestellt in):
1 is being removed
3 is being added
4 is being added
5 is being removed
2.3333333333333335
Daher können wir annehmen, dass x [1] in der Funktion nicht verwendet wird, und ich würde gerne wissen w warum.
Vielen Dank im Voraus für jede Hilfe.
Was soll das i + = 1 tun? (Ich meine, was denkst du sollte es tun) – Julien
Deine Frage fehlt eindeutig eine zentrale Sache: was willst du * tun? Es gibt ein paar Probleme, die Sie mit Ihrem Code beheben sollten, aber es bringt nichts, sie zu erklären, ohne zu wissen, was Sie überhaupt tun wollten. –
Ich bin nicht sicher, warum ich es einfüge, aber das Entfernen gibt das gleiche Ergebnis zurück –