【发布时间】:2019-03-26 01:32:38
【问题描述】:
我正在尝试将所有列表合并到具有共同元素的列表列表中。我有一些工作代码。但是,它似乎在这个例子中被打破了:
def merge_subs(lst_of_lsts):
res = []
for row in lst_of_lsts:
for i, resrow in enumerate(res):
if row[0]==resrow[0]:
res[i] += row[1:]
break
else:
res.append(sorted(row))
return sorted(res)
输入是:
merge_subs([[1, 7, 3], [1, 7, 5], [2, 0, 4], [2, 0, 6], [3, 7, 1], [3, 7, 5], [4, 0, 2], [4, 0, 6], [5, 7, 1], [5, 7, 3], [6, 0, 2], [6, 0, 4]])
我的结果是:
[[0, 2, 4, 6], [1, 3, 5, 7], [3, 5, 7]]
但我应该得到:
[[0, 2, 4, 6], [1, 3, 5, 7]]
【问题讨论】:
-
能否详细说明合并的条件?您的代码的目的是仅检查每个列表的第一个元素。
-
你的结果不是我运行它得到的输出。它看起来确实像图形连接的组件。
-
我不认为你的结果是你从上面写的代码中得到的......