这是问题以及我期望的结果。我已经有一个执行此操作的例程,但我想研究其他解决方案,因此需要解决方案或问题本身的任何流行名称。
If name1 and name2 are aliases or equivalent and name3 and name2 are aliases then
name1, name2, and name3 are all aliases of each other.
>>> aliases = [('name1', 'name2'), ('name3', 'name2')]
>>> consolidate_aliases(aliases)
[('name2', 'name3', 'name1')]
>>> aliases = [('A', 'X'), ('B', 'Y'), ('C', 'Z'), ('S', 'L'), ('T', 'M'), ('U', 'N'), ('Y', 'T'), ('B', 'L')]
>>> consolidate_aliases(aliases)
[('S', 'B', 'T', 'Y', 'M', 'L'), ('U', 'N'), ('C', 'Z'), ('A', 'X')]
>>>