用 Python 写一个对列表去重的函数

搜索过程
回答

当然可以。下面是一个简单的Python函数,它接受一个列表作为输入,并返回一个去除重复元素的新列表。

去重函数示例

      
python
def remove_duplicates(input_list):
    """
    此函数用于从输入的列表中移除所有重复的元素。
    
    参数:
    input_list (list): 需要去重的原始列表。
    
    返回:
    list: 不含重复元素的列表。
    """
    # 使用 set 进行去重,然后转换回 list
    return list(set(input_list))

# 示例使用
example_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = remove_duplicates(example_list)
print(unique_list)  # 输出可能是 [1, 2, 3, 4, 5],元素顺序可能变化

请注意,由于使用了 set,这个方法不保证原始列表中的元素顺序。如果你需要保持元素的插入顺序,可以采用以下方法:

保持顺序的去重方法

      
python
def remove_duplicates_ordered(input_list):
    """
    该函数去重并保持列表元素的原始顺序。
    
    参数:
    input_list (list): 需要去重的列表。
    
    返回:
    list: 去除了重复项且保持原顺序的列表。
    """
    seen = set()
    seen_add = seen.add
    return [x for x in input_list if not (x in seen or seen_add(x))]

# 示例使用
ordered_example = [1, 2, 2, 3, 2, 4, 5]
kept_order_list = remove_duplicates_ordered(ordered_example)
print(kept_order_list)  # 输出应为 [1, 2, 3, 4, 5],保持了插入顺序

这个版本通过列表推导和辅助集合 seen 来确保元素的顺序得到保持,同时完成去重。