Python - 如何拼合嵌套列表获取唯一值

时间:2018-03-21 22:00:33

标签: python list unique

这是我的功能:

extract_unique_elements([2,[[2,4,5],"c",[[["c","d"]]]]])

应返回:{2, 4, 5, “c”, “d”}(以集合的形式)。

我找了一些答案,但他们都是2D列表。 谢谢。 但现在我已经有了解决方案。谢谢大家的帮助。

def extract_unique_elements(lst):
    unique = []
    def recursion_occurs_here(element):
        for item in element:
            if isinstance(item, list):
               recursion_occurs_here(item)
            else:
               unique.append(item)
    recursion_occurs_here(lst)
    extracted = set(unique)
    return extracted

1 个答案:

答案 0 :(得分:4)

您可以使用递归来展平列表:

loofah

输出:

def flatten(d):
  return {i for b in [[i] if not isinstance(i, list) else flatten(i) for i in d] for i in b}

print(flatten([2,[[2,4,5],"c",[[["c","d"]]]]]))