菜鸟教程 -- 学的不仅是技术,更是梦想!

Python 3 教程
Python3 教程 Python3 简介 Python3 环境搭建 Python3 VScode Python3 基础语法 Python3 基本数据类型 Python3 数据类型转换 Python3 解释器 Python3 注释 Python3 运算符 Python3 数字(Number) Python3 字符串 Python3 列表 Python3 元组 Python3 字典 Python3 集合 Python3 条件控制 Python3 循环语句 Python3 编程第一步 Python3 推导式 Python3 迭代器与生成器 Python3 with Python3 函数 Python3 lambda Python3 装饰器 Python3 数据结构 Python3 模块 Python __name__ Python3 输入和输出 Python3 File Python3 OS Python3 错误和异常 Python3 面向对象 Python3 命名空间/作用域 Python 虚拟环境的创建 Python 类型注解 Python3 标准库概览 Python3 实例 Python 测验

Python3 高级教程

Python3 正则表达式 Python3 CGI编程 Python3 MySQL(mysql-connector) Python3 MySQL(PyMySQL) Python3 网络编程 Python3 SMTP发送邮件 Python3 多线程 Python3 XML 解析 Python3 JSON Python3 日期和时间 Python3 内置函数 Python3 MongoDB Python3 urllib Python uWSGI 安装配置 Python3 pip Python3 operator Python math Python requests Python random Python OpenAI Python 有用的资源 Python AI 绘画 Python statistics Python hashlib Python 量化 Python pyecharts Python selenium 库 Python 爬虫 Python Scrapy 库 Python Markdown Python sys 模块 Python Pickle 模块 Python subprocess 模块 Python queue 模块 Python StringIO 模块 Python logging 模块 Python datetime 模块 Python re 模块 Python csv 模块 Python threading 模块 Python asyncio 模块 Python PyQt Python for 循环 Python while 循环
(追記) (追記ここまで)

Python 移除列表中重复的元素

Document 对象参考手册 Python3 实例

本章节我们将学习如何从列表中删除重复的元素。

知识点有:

  • Python 集合:集合(set)是一个无序的不重复元素序列。

  • Python 列表:列表是一种数据项构成的有限序列,即按照一定的线性顺序排列而成的数据项的集合,在这种数据结构上进行的基本操作包括对元素的的查找、插入和删除。

实例

list_1 = [1, 2, 1, 4, 6]

print(list(set(list_1)))

执行以上代码输出结果为:

[1, 2, 4, 6]

在以上实例中,我们首先将列表转换为集合,然后再次将其转换为列表。集合中不能有重复元素,因此 set() 会删除重复的元素。

如果需要保持原始列表中元素的顺序,可以使用一个辅助集合来跟踪已经见过的元素,然后构建一个新的列表。

实例

# 使用辅助集合保持顺序地去重
def remove_duplicates(lst):
seen = set()
unique_list = []
for item in lst:
if item not in seen:
seen.add(item)
unique_list.append(item)
return unique_list

# 示例
original_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = remove_duplicates(original_list)
print(unique_list) # 输出: [1, 2, 3, 4, 5]

使用 dict.fromkeys()

dict.fromkeys() 方法也可以用于去重并保持顺序,因为字典在 Python 3.7 及以上版本中保持插入顺序。

实例

# 使用dict.fromkeys()保持顺序地去重
def remove_duplicates(lst):
return list(dict.fromkeys(lst))

# 示例
original_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = remove_duplicates(original_list)
print(unique_list) # 输出: [1, 2, 3, 4, 5]

执行以上代码输出结果为:

[1, 2, 3, 4, 5]

使用列表推导式

列表推导式结合条件判断也可以实现去重功能。

实例

# 使用列表推导式去重
def remove_duplicates(lst):
unique_list = []
[unique_list.append(item) for item in lst if item not in unique_list]
return unique_list

# 示例
original_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = remove_duplicates(original_list)
print(unique_list) # 输出: [1, 2, 3, 4, 5]

删除两个列表中重复的元素

在以下实例中,两个列表中同时存在的元素会被删除。

实例

list_1 = [1, 2, 1, 4, 6]
list_2 = [7, 8, 2, 1]

print(list(set(list_1) ^ set(list_2)))

首先,使用 set() 将两个列表转换为两个集合,用于删除列表中的重复元素。

然后,使用 ^ 运算符得到两个列表的对称差。

执行以上代码输出结果为:

[4, 6, 7, 8]

首先,将两个列表转换为两个集合,以从每个列表中删除重复项。

然后,^ 得到两个列表的对称差(排除两个集合的重叠元素)。

Document 对象参考手册 Python3 实例

AI 思考中...

2 篇笔记 写笔记

  1. #0

    MAX

    max***[email protected]

    45

    对于上面给出的,"去除单个列表中重复的元素,只保留一个"的解法,存在问题:

    如果使用set()函数,会破坏原来的list中元素存在的顺序,正序排列原list的元素;

    (当然,若列表的后续使用不受顺序影响,可使用上述提供的方法)

    可以使用如下方法避免错误:

    #去除单个列表中的重复元素
    list_case = [9, 9, 9, 8, 7, 6, 6, 6, 4, 3, 5, 3, 5, 2]
    re = []
    for x in list_case:
     if x in re:
     continue
     else:
     re.append(x)
    print(re)

    MAX

    max***[email protected]

    3年前 (2023年02月10日)
  2. #0

    YEUNGCHIE

    im.***[email protected]

    14

    上面例子的效率太低了,可以使用字典中的key唯一点特点来去重。

    #去除单个列表中的重复元素
    list_case = [9, 9, 9, 8, 7, 6, 6, 6, 4, 3, 5, 3, 5, 2]
    re = {}
    for x in list_case:
     re[x] = 1
    print(list(re))

    YEUNGCHIE

    im.***[email protected]

    2年前 (2024年05月19日)

点我分享笔记

  • 昵称 (必填)
  • 邮箱 (必填)
  • 引用地址

AltStyle によって変換されたページ (->オリジナル) /