Consider I have a dict holding n different types represented by keys:x1, x2 ..xn
For simplicity let's take a small example:
{"x1":["foo1", "goo1" ,"doo1"], "x2":["foo2","goo2"]}
I want to calculate cartesian product of the above. My output should be:
{"output":[{"x1":"foo1", "x2":"foo2"}, {"x1":"foo1", "x2":"goo2"}, {"x1":"goo1", "x2":"foo2"} , {"x1":"goo1", "x2":"goo2"}, {"x1":"doo1", "x2":"foo2"} {"x1":"doo1", "x2":"goo2"}]}
Should I traverse each unique pair
out of input dictionary keys and calculate their cartesian product and append their values?
How do I concatenate the rest of values if another value appears let's say x3?
In this kind of approach I will calculate cartesian product for x1*x2 values
and then x2*x3 values and how do I merge the results to be x1*x2*x3?
Can you think of a more simple algorithm and an efficient one? Or this should be the way?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…