亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> Python

Python 列表去重完全指南:七种方法与最佳实践

列表是 Python 基础数据结构,存放有序整数、字符串或自定义对象。以下提供七种去重技术,兼顾顺序保持与可读性。

1. 集合去重

set() 自动去重,转回列表即可。不保留原序。

my_list = [1,1,2,3,2,2,4,5,6,2,1]
my_final_list = set(my_list)
print(list(my_final_list))

输出:

[1, 2, 3, 4, 5, 6]

2. 临时列表法

新建空列表,遍历原列表,仅追加未见过的元素。

my_list = [1, 2, 3, 1, 2, 4, 5, 4, 6, 2]
temp_list = []
for i in my_list:
    if i not in temp_list:
        temp_list.append(i)
my_list = temp_list
print(my_list)

输出:

[1, 2, 3, 4, 5, 6]

3. OrderedDict / dict.fromkeys()

Python 3.5+ 字典保持插入序,dict.fromkeys() 一行去重且保序。

my_list = ['a','x','a','y','a','b','b','c']
my_final_list = dict.fromkeys(my_list)
print(list(my_final_list))

输出:

['a', 'x', 'y', 'b', 'c']

4. 简单 for 循环

遍历原列表,仅将未出现过的元素加入新列表。

my_list = [1,2,2,3,1,4,5,1,2,6]
myFinallist = []
for i in my_list:
    if i not in myFinallist:
        myFinallist.append(i)
print(myFinallist)

输出:

[1, 2, 3, 4, 5, 6]

5. 列表推导式

简洁语法,保持可读性。

my_list = [1,2,2,3,1,4,5,1,2,6]
my_finallist = []
[my_finallist.append(n) for n in my_list if n not in my_finallist]
print(my_finallist)

输出:

[1, 2, 3, 4, 5, 6]

6. NumPy unique()

返回排序后的唯一元素数组。

import numpy as np
my_list = [1,2,2,3,1,4,5,1,2,6]
myFinalList = np.unique(my_list).tolist()
print(myFinalList)

输出:

[1, 2, 3, 4, 5, 6]

7. Pandas unique()

轻量级去重,适配类列表对象。

import pandas as pd
my_list = [1,2,2,3,1,4,5,1,2,6]
myFinalList = pd.unique(my_list).tolist()
print(myFinalList)

输出:

[1, 2, 3, 4, 5, 6]

8. enumerate() + 列表推导式

函数式风格,保留首次出现顺序。

my_list = [1,2,2,3,1,4,5,1,2,6]
my_finallist = [i for j, i in enumerate(my_list) if i not in my_list[:j]]
print(my_finallist)

输出:

[1, 2, 3, 4, 5, 6]

总结

Python

  1. 精通Python数据类型:实战指南
  2. 精通Python运算符:全面指南
  3. 精通Python Pass语句:实战指南
  4. 精通Python函数参数:位置、关键字与默认参数
  5. 精通 Python 字典:创建、操作与进阶技巧
  6. 精通 Python range() 函数:从基础到高级用法
  7. Python 列表完全指南:增删改查、排序、推导式实战
  8. Python 计算平均值:从循环到 NumPy 的四种实战方法
  9. Python list.count() 专家指南:语法、示例与性能解析
  10. Python 列表删除元素全攻略:remove、pop、clear 与 del 详解
  11. Python list.index() 详解:查找元素位置的实用指南与示例
  12. Python 列表完全指南:创建、访问、操作与内置方法详解