Die Zahlen in den geschweiften Klammern stellen einen Vektor dar. Ich will nun zwei Strings erzeugen, output1 sowie output2, wobei ich den Zufall entscheiden lassen will, aus welchen Vektoren die beiden strings, output1 und output2, jeweils bestehen sollen.
Code: Alles auswählen
import random
def function():
str="{1.2, 3, 4}{5, 3}{6.6, 9}"
output1 =""
output2 =""
zahl=0
for el in str:
if el == "}":
sr = random.SystemRandom()
a = sr.randint(1, 2)
#Ich generiere eine Zufallszahl zwischen 1 und 2.
if a == 1:
output1 += str[zahl:str.find(el)]
#output1 wird hier um den slice von zahl=0 bis zum ersten Vorkommen von el=="}" erweitert.
zahl=str.find(el)
#zahl=0 bekommt das erste Vorkommen von el="}" als Wert (??Geht das?).
str.replace(el, "", 1)
#Das erste Vorkommen von "}" wird eliminiert. Dies soll nun für jede schließende Vektorklammer
#geschehen, wenn el wieder == "}" ist, bekommt je nach dem entweder output1 oder output2 einen
#neuen slice von str dazu, und zwar zwischen zahl und }.
if a == 2:
output1 += str[zahl:str.find(el)]
zahl=str.find(el)
str.replace(el, "", 1)
Wenn ich diesen Code durchlaufen lasse, wird {1.2, 3, 4 ausgegeben.
Woran liegt das? Wenn die Frage zu dumm ist, hoffe ich, dass ich nicht euren Groll hervorrufe :K