Python - 从列表中删除重复项的方法

pythonserver side programmingprogramming

列表是一个重要的容器,几乎用于日常编程以及 Web 开发的所有代码中,使用得越多,掌握它的要求就越高,因此了解它的操作是必要的。从列表中删除重复项的操作具有广泛的应用,因此,了解它很有用。

示例

# 使用简单方法
# 初始化列表
test_list = [1, 3, 5, 6, 3, 5, 6, 1]
print ("原始列表为:" +  str(test_list))
# 使用简单方法从列表中删除重复项
res = []
for i in test_list:
   if i not in res:
      res.append(i)
# 打印删除后的列表
print ("删除重复项后的列表:" + str(res))
# 使用列表推导式
# 初始化列表
test_list = [1, 3, 5, 6, 3, 5, 6, 1]
print ("原始列表为:" +  str(test_list))
# 使用列表推导式从列表中删除重复项
res = []
[res.append(x) for x in test_list if x not in res]
# 打印删除后的列表
print ("删除重复项后的列表:" + str(res))
# 使用 set()
# 初始化列表
test_list = [1, 5, 3, 6, 3, 5, 6, 1]
print ("原始列表为:" +  str(test_list))
#使用 set() 从列表中删除重复项
test_list = list(set(test_list))  
# 打印删除后的列表
print ("删除重复项后的列表:" + str(test_list))
# 使用列表推导 + enumerate()
# 初始化列表
test_list = [1, 5, 3, 6, 3, 5, 6, 1]
print ("原始列表为:" +  str(test_list))
# 使用列表推导 + enumerate() 从列表中删除重复项
res = [i for n, i in enumerate(test_list) if i not in test_list[:n]]  
# 打印删除后的列表
print ("删除重复项后的列表:" + str(res))
# 使用 collections.OrderedDict.fromkeys()
from collections import OrderedDict
# 初始化列表
test_list = [1, 5, 3, 6, 3, 5, 6, 1]
print ("原始列表为:" +  str(test_list))  
# 使用 collections.OrderedDict.fromkeys() 从列表中删除重复项
res = list(OrderedDict.fromkeys(test_list))  
# 打印删除后的列表
print ("删除重复项后的列表 : " + str(res))

输出

原始列表为 : [1, 3, 5, 6, 3, 5, 6, 1]
删除重复项后的列表 : [1, 3, 5, 6]
原始列表为 : [1, 3, 5, 6, 3, 5, 6, 1]
删除重复项后的列表 : [1, 3, 5, 6]
原始列表为 : [1, 5, 3, 6, 3, 5, 6, 1]
删除重复项后的列表 : [1, 3, 5, 6]
原始列表为 : [1, 5, 3, 6, 3, 5, 6, 1]
删除重复项后的列表重复项:[1, 5, 3, 6]
原始列表为:[1, 5, 3, 6, 3, 5, 6, 1]
删除重复项后的列表:[1, 5, 3, 6]

相关文章