Gegeben eine Liste von Eingaben. Das letzte x der Liste ist eine Zahl, die ich für einen Test verwenden möchte. Also sind die n-x-Anfangselemente diejenigen, die ich mit den Elementen in x testen möchte.While-Schleife beendet Python nicht
Zum Beispiel:
test_case = [0.18677649597722776, 0.21992417009282958, 0.21001370207789635, 0.2576939078119566, -0.26790678064174844, 0.23723906040549575, 0.23796810219833633, 0.12311570730540798, 0.291222989748139, -0.46589179980005796, -0.5679935337540711, -0.541967302717414, 0.2797199715268191, -0.0462338707795437, 0.3352382038488532, -0.6395453091791992, -0.7116194799285872, -0.6827853559995019, 0.4131897184013285, 0.07125041194386302, 0.47179441094288416, -0.5670171363969451, -0.6493889334859158, -0.6214861349381114, 0.6332084272531783, 0.2946607775328391, 0.7252115985158697, -0.48494480580385074, -0.5584250339723696, -0.5329318548632481, 0, 1, 0, 5, 5, 5]
Die letzten 6 Zahlen, die ich im Rahmen meiner Prüfung auf den ersten 30 Nummern verwenden möchten. Ich möchte durch die 30 Zahlen so, dass, wenn test_case[31] < 3
, geben Sie mir test_case[0]
, sonst geben Sie mir -999
. Dies iteriert bis test_case[36] < 3
, geben Sie test_case[5]
. Dann möchte ich test_case[31]
zurück gehen und auf test_case[6]
wieder verwendet werden und Schleife.
Nachdem ich bei test_case[30]
bin, möchte ich es stoppen.
Hier ist, was ich habe:
def test_inputs(x, comp_size):
counts = x[-comp_size:]
inputs = x[:(len(x)-comp_size+1)]
counts_pos = 0
inputs_pos = 0
while inputs_pos < (len(x)-comp_size+1):
if counts_pos == 6:
counts_pos = 0
if counts[counts_pos] < 3:
x.append(inputs[inputs_pos])
print inputs_pos
print counts_pos
inputs_pos += 1
counts_pos += 1
else:
x.append(-999)
print inputs_pos
print counts_pos
inputs_pos += 1
counts_pos += 1
Ich versuche, eine verallgemeinerte Funktion zu machen. In diesem Fall sollte laufen können:
test_inputs(test_case, 6)
Dies ist jedoch bei inputs_pos == 31
nicht stoppen. Ich gebe Druckanweisungen ein, und es sieht so aus, als würde es einfach weitergehen.
Gibt es einen einfacheren Weg mit einem Filter?
Ihre Schleifenbedingung hängt von len (x) ab, aber Sie fügen bei jeder Iteration durch die Schleife ein Element an x an, so dass len (x) immer größer wird. – jarmod
Das war's, danke !! – WhitneyChia