我有一组成对的列表(元组),简化起见,就像这样:
L = [("A","B"), ("B","C"), ("C","D"), ("E","F"), ("G","H"), ("H","I"), ("G","I"), ("G","J")]
使用Python,我希望能够高效地将此列表拆分为以下部分:
L1 = [("A","B"), ("B","C"), ("C","D")]
L2 = [("E","F")]
L3 = [("G","H"), ("G","I"), ("G","J"), ("H","I")]
如何高效地将列表分成成对的组,其中对于组中的成对,必须始终至少有一对与其他成对共享一个项目? 如在其中一个答案中所述,实际上这是网络问题。目标是将网络有效地分割为不连通(孤立)的网络部分。
类型列表、元组(集合)可以更改以实现更高的效率。