I have two lists, L1 and L2, each with a key and some data. Let us say the key is a person's name, a string, and the data follows. (To respond to rasher's query:) Let us also assume the lists are sorted by key:
L1 = {
{"Joseph O'Rourke", data1, data2, ... },
...
}
I would like to "align" the two lists in the following sense. If L1 has a name A that is not in L2, then L2 is padded to include a "blank" record for A. And vice versa: If L2 has a name B that is not in L1, then L1 is modified to include a "blank" record for B. Then I will have two lists that "align":
L1' = { {A,...}, {0,...}, {C,...}, {D,...}, ...}
L2' = { {A,...}, {B,...}, {0,...}, {D,...}, ...}
where maybe 0 == {}
. With the lists aligned in this fashion,
I could make a two-column table (one column per list) that would directly compare one
list against the other. My question is:
What is a clean method for accepting L1 and L2 as input, and returning L1' and L2' as output, with the latter two lists aligned as above?
I can accomplish this via tedious list For-loops, but I suspect the cognoscenti :-) will offer more concise and efficient methods. Thanks for your help!
SequenceAlignment["ABCDEG", "ABDEFG"]
? $\endgroup$SequenceAlignment[]
. $\endgroup$