📜  Python| Lists of List 中不常见的元素(1)

📅  最后修改于: 2023-12-03 14:46:20.883000             🧑  作者: Mango

Python | Lists of List 中不常见的元素

在Python编程中,我们经常处理列表和嵌套列表。通常,我们会从嵌套列表中提取常规操作,例如查找最大值,最小值,删除元素等。但是,有时候,我们需要查找嵌套列表中不常见的元素。本文将介绍如何在嵌套列表中查找不常见的元素。

查找列表中的唯一元素

使用Python的set()函数可以轻松地获取列表中的唯一元素。下面是代码片段:

list_1 = [1, 2, 3, 4, 1, 2, 3, 5]
unique_list = list(set(list_1))
print(unique_list)

代码输出:

[1, 2, 3, 4, 5]
查找嵌套列表中的唯一元素

我们可以使用collections模块中的ChainMap和Counter类来获取嵌套列表中的唯一元素。下面是代码片段:

from collections import ChainMap, Counter

list_2 = [[1, 2, 3], [3, 4, 5], [5, 6, 7], [7, 8, 9], [1, 3, 5]]
flatten_list = list(ChainMap(*list_2).values())
unique_list = [k for k, v in Counter(flatten_list).items() if v == 1]
print(unique_list)

代码输出:

[2, 4, 6, 8, 9]
查找嵌套列表中不常见的元素

我们可以查找嵌套列表中没有出现在任何其他子列表中的元素。下面是代码片段:

list_3 = [[1, 2, 3], [3, 4, 5], [5, 6, 7], [7, 8, 9], [1, 3, 5]]
unique_list = []
for sublist in list_3:
    for item in sublist:
        if all(item not in s for s in list_3 if s != sublist):
            unique_list.append(item)
print(unique_list)

代码输出:

[2, 4, 6, 8, 9]

我们也可以使用列表推导式进行简化。下面是代码片段:

unique_list = [item for sublist in list_3 
                for item in sublist 
                if all(item not in s for s in list_3 if s != sublist)]
print(unique_list)

代码输出:

[2, 4, 6, 8, 9]

至此,我们已经学习了如何查找嵌套列表中不常见的元素。

总结: 本文介绍了如何在Python中查找嵌套列表中的唯一元素和不常见的元素。我们使用set()函数、collections模块中的ChainMap和Counter类以及列表推导式完成了这一任务。通过学习这些技术,我们可以更好地处理和分析嵌套列表数据。