ITPub博客

首页 > 应用开发 > Python > Python 中的集合和字典如何实现去重?

Python 中的集合和字典如何实现去重?

原创 Python 作者:mingtian66 时间:2024-11-04 10:51:20 0 删除 编辑

在 Python 中,集合(set)和字典(dict)都是基于哈希表的数据结构,具有快速查找和去重功能。具体来说:
1. 使用集合(set)去重

集合本身只存储唯一值,因此可以直接用集合来去重。

示例代码:

python

# 使用集合去重
lst = [1, 2, 2, 3, 4, 4, 5]
unique_set = set(lst)
print(unique_set)  # 输出: {1, 2, 3, 4, 5}

# 如果需要保留列表格式
unique_list = list(unique_set)
print(unique_list)  # 输出: [1, 2, 3, 4, 5]

    使用集合去重时会打乱原有列表顺序,因为集合是无序的。

2. 使用字典(dict)去重

字典的键(key)也是唯一的,因此可以通过将元素作为键添加到字典中来去重。

示例代码:

python

# 使用字典去重
lst = [1, 2, 2, 3, 4, 4, 5]
unique_dict = dict.fromkeys(lst)
print(unique_dict)  # 输出: {1: None, 2: None, 3: None, 4: None, 5: None}

# 如果需要保留列表格式
unique_list = list(unique_dict.keys())
print(unique_list)  # 输出: [1, 2, 3, 4, 5]

    使用字典去重时可以保留原有列表的顺序(Python 3.7+ 保证了字典的插入顺序),因此如果需要顺序不变的去重列表,可以使用字典。

3. 使用字典的字面量语法去重

在 Python 3.6+ 中,可以用字典的字面量语法 {} 来去重并保持顺序(Python 3.7+ 保证字典的插入顺序)。

示例代码:

python

# 使用字典字面量语法去重并保留顺序
lst = [1, 2, 2, 3, 4, 4, 5]
unique_list = list({x: None for x in lst})
print(unique_list)  # 输出: [1, 2, 3, 4, 5]

以上方法能够高效去重,可根据是否保留顺序的需求选择合适的方法。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70040412/viewspace-3045075/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2024-08-07

  • 博文量
    589
  • 访问量
    603025