Mat
05-02-2005, 17:21
Hallo Allerseits,
ich habe einen Auszug aus meinem Code der mir Schwierigkeiten bereitet...
ich habe ihn so abgeändert.
es ist python code:
cmp = ["A",2]
ref_list = [["A",2],["A",3],["A",6],["F",8]]
dup = False
for tupel in ref_list:
if ((cmp[0] == tupel[0]) & (dup == False)):
if cmp[1] == tupel[1]:
dup = True
print "OK"
ref_list.remove(tupel)
continue
if cmp[1] != tupel[1]:
print "DIFFERENT"
ref_list.remove(tupel)
continue
if ((cmp[0] == tupel[0]) & (dup == True)):
if cmp[1] == tupel[1]:
ref_list.remove(tupel)
continue
if cmp[1] != tupel[1]:
print "DIFFERENT DUPLICATE"
ref_list.remove(tupel)
continue
Was ich nun erwarten würde ist eine Ausgabe von
OK
DIFFERENT DUPLICATE
DIFFERENT DUPLICATE
Es kommt aber nur
OK
DIFFERENT DUPLICATE
ich habe bemerkt dass wenn ich zwei mal in der ref_list ein tupel hintereinander mit demselben Buchstaben, in diesem Fall "A", eintrage er einfach bei der Bearbeitung des ersten "A" gleich danach zum dritten springt.
Er läuft einfach nicht alle Elemente der Liste durch sondern überspringt eines.
Ich versuche seit 2 Tagen das Problem zu beheben...
Es wäre sehr nett wenn mir jemand Hilfe leisten könnte.
P.S.:
Das Programm soll tun:
nur einmal OK ausgeben wenn die Tupel identisch sind und alle weiteren identsichen Tupel nicht ausgeben, aber alle weiteren Tupel die sich nur im Wert also dem Integer unterscheiden als DIFFERENT DUPLICATE ausgeben.
Falls zuerst DIFFERENT auftritt dann einfach DIFFERENT ausgeben udn dann evtl wenn die Tupel identisch sind einfach OK Aber alle nach dem OK Tupel wieder als DIFFERENT DUPLICATE oder gar nicht.
DANKE
ich habe einen Auszug aus meinem Code der mir Schwierigkeiten bereitet...
ich habe ihn so abgeändert.
es ist python code:
cmp = ["A",2]
ref_list = [["A",2],["A",3],["A",6],["F",8]]
dup = False
for tupel in ref_list:
if ((cmp[0] == tupel[0]) & (dup == False)):
if cmp[1] == tupel[1]:
dup = True
print "OK"
ref_list.remove(tupel)
continue
if cmp[1] != tupel[1]:
print "DIFFERENT"
ref_list.remove(tupel)
continue
if ((cmp[0] == tupel[0]) & (dup == True)):
if cmp[1] == tupel[1]:
ref_list.remove(tupel)
continue
if cmp[1] != tupel[1]:
print "DIFFERENT DUPLICATE"
ref_list.remove(tupel)
continue
Was ich nun erwarten würde ist eine Ausgabe von
OK
DIFFERENT DUPLICATE
DIFFERENT DUPLICATE
Es kommt aber nur
OK
DIFFERENT DUPLICATE
ich habe bemerkt dass wenn ich zwei mal in der ref_list ein tupel hintereinander mit demselben Buchstaben, in diesem Fall "A", eintrage er einfach bei der Bearbeitung des ersten "A" gleich danach zum dritten springt.
Er läuft einfach nicht alle Elemente der Liste durch sondern überspringt eines.
Ich versuche seit 2 Tagen das Problem zu beheben...
Es wäre sehr nett wenn mir jemand Hilfe leisten könnte.
P.S.:
Das Programm soll tun:
nur einmal OK ausgeben wenn die Tupel identisch sind und alle weiteren identsichen Tupel nicht ausgeben, aber alle weiteren Tupel die sich nur im Wert also dem Integer unterscheiden als DIFFERENT DUPLICATE ausgeben.
Falls zuerst DIFFERENT auftritt dann einfach DIFFERENT ausgeben udn dann evtl wenn die Tupel identisch sind einfach OK Aber alle nach dem OK Tupel wieder als DIFFERENT DUPLICATE oder gar nicht.
DANKE