输入:
[[102, 106], [106, 107], [101, 106], [104, 105, 106], [105], [103, 105], [104]]
期望的输出:
[102, 107, 101, 106, 105, 103, 104]
原始数组的每个索引基本上都是结果数组中索引的可能性列表。目标是在结果数组中表示每个数字一次。我很难为这项任务找到合适的算法类型。对这类问题采取什么样的一般方法?
答案 0 :(得分:1)
您可以在展开列表后使用unique_everseen
:
# sample input
data = [[102, 106], [106, 107], [101, 106], [104, 105, 106], [105], [103, 105], [104]]
from more_itertools import unique_everseen
data = list(unique_everseen([a for sub in data for a in sub]))