首页 > 编程知识 正文

Python二维List去重

时间:2023-11-22 09:53:01 阅读:299141 作者:MMQJ

本文将详细介绍如何使用Python对二维List进行去重操作。

一、使用集合Set进行去重

1、通过创建一个空的集合Set,逐个遍历二维List中的元素,将其添加到集合中。

2、由于集合Set中的元素是唯一的,重复的元素将自动被去重。

3、最后将集合Set转换回二维List即可得到去重后的结果。

<code>
def deduplicate_2d_list(input_list):
    unique_elements = set()
    for sublist in input_list:
        for element in sublist:
            unique_elements.add(element)
    return list(map(list, unique_elements))
    
input_list = [[1, 2, 3], [4, 5, 6], [1, 2, 3]]
output_list = deduplicate_2d_list(input_list)
print(output_list)  # [[1, 2, 3], [4, 5, 6]]
</code>

二、使用嵌套循环进行去重

1、通过两层嵌套循环遍历二维List中的元素,比较每个元素与后续元素是否相等。

2、若相等,则移除后续元素,以达到去重的目的。

3、注意需要使用倒序遍历,以防止索引错误。

<code>
def deduplicate_2d_list(input_list):
    for i in range(len(input_list)-1, -1, -1):
        for j in range(i-1, -1, -1):
            if input_list[i] == input_list[j]:
                del input_list[i]
                break
    return input_list

input_list = [[1, 2, 3], [4, 5, 6], [1, 2, 3]]
output_list = deduplicate_2d_list(input_list)
print(output_list)  # [[1, 2, 3], [4, 5, 6]]
</code>

三、使用列表推导式进行去重

1、使用列表推导式将二维List展开为一维List。

2、通过创建一个新的列表,逐个遍历一维List中的元素,并检查是否已经存在于新列表中。

3、若不存在,则将该元素添加到新列表中。

4、最后将新列表重新组织成二维List的形式。

<code>
def deduplicate_2d_list(input_list):
    flat_list = [element for sublist in input_list for element in sublist]
    unique_elements = []
    for element in flat_list:
        if element not in unique_elements:
            unique_elements.append(element)
    output_list = []
    for i in range(0, len(unique_elements), len(input_list[0])):
        output_list.append(unique_elements[i:i+len(input_list[0])])
    return output_list
    
input_list = [[1, 2, 3], [4, 5, 6], [1, 2, 3]]
output_list = deduplicate_2d_list(input_list)
print(output_list)  # [[1, 2, 3], [4, 5, 6]]
</code>

四、使用numpy库进行去重

1、使用numpy库将二维List转换为numpy数组。

2、通过numpy库中的unique函数对numpy数组进行去重操作。

3、将去重后的结果转换回二维List。

<code>
import numpy as np

def deduplicate_2d_list(input_list):
    np_array = np.array(input_list)
    unique_np_array = np.unique(np_array)
    output_list = unique_np_array.tolist()
    return output_list

input_list = [[1, 2, 3], [4, 5, 6], [1, 2, 3]]
output_list = deduplicate_2d_list(input_list)
print(output_list)  # [[1, 2, 3], [4, 5, 6]]
</code>

五、小结

本文介绍了使用Python对二维List进行去重的几种方法,包括使用集合Set、嵌套循环、列表推导式和numpy库。根据具体的需求和数据规模,选择合适的方法可以提高去重效率。希望本文能对你有所帮助!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。