假设有两个列表
L1=[['A', ['C', ['B', ['D', 0]]]],
[['A', ['D', ['K', ['C', ['E', 0]]]]],
[['A', ['C', ['B', ['M', 0]]]]]
和
L2=[['A', ['C', ['B', ['K', 0]]]],
[['A', ['C', ['B', ['B', ['E', 0]]]]],
[['A', ['D', ['K', ['F', 0]]]]]
然后输出应该返回所有具有最长公共路径的子路径。例如:
由于'A'、'C'、'B'是共同的L1和L2;输出应该是:
[['A', ['C', ['B', ['D', 0]]]],
[['A', ['C', ['B', ['M', 0]]]],
[['A', ['C', ['B', ['K', 0]]]],
[['A', ['C', ['B', ['B', ['E', 0]]]]]
. 此外,“A”、“D”、“K”在 L1 和 L2 中也常见一次;输出应该是:
[['A', ['D', ['K', ['C', ['E', 0]]]]],
[['A', ['D', ['K', ['F', 0]]]]]
我试过了 :
[i for i in L1 if i in L2]
但它会给出所有公共路径的输出,直到叶子(结束)。