算法 - 如何删除有效列表中的重复元素? [英] Algorithm - How to delete duplicate elements in a list efficiently?

查看:252
本文介绍了算法 - 如何删除有效列表中的重复元素?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有一个列表L 。它包含任意类型的每个的元素。 如何有效地删除这样的列表中所有重复的元素? 顺序必须是preserved

There is a list L. It contains elements of arbitrary type each. How to delete all duplicate elements in such list efficiently? ORDER must be preserved

只是一个算法是必需的,所以没有导入任何外部库是允许的。

Just an algorithm is required, so no import any external library is allowed.

  • <一个href="http://stackoverflow.com/questions/89178/in-python-what-is-the-fastest-algorithm-for-removing-duplicates-from-a-list-so-t">In Python中,什么是最快的算法从列表中删除重复项,使所有的元素都是唯一的,而preserving为了的?

<一个href="http://stackoverflow.com/questions/480214/how-do-you-remove-duplicates-from-a-list-in-python-whilst-$p$pserving-order">How你从列表中删除重复在Python,而preserving订单?

<一个href="http://stackoverflow.com/questions/1143379/removing-duplicates-from-list-of-lists-in-python">Removing从Python列表列表重复

<一个href="http://stackoverflow.com/questions/479897/how-do-you-remove-duplicates-from-a-list-in-python">How你从列表Python中删除重复?

推荐答案

假设为了事项:

  • 创建一个空的集合S和一个空表米
  • 在一次扫描列表L的一个元素。
  • 如果该元素是在集合S,跳过它。
  • 否则,将其添加到M和秒。
  • 重复L中的所有元素。
  • 返回米

在Python的:

>>> L = [2, 1, 4, 3, 5, 1, 2, 1, 1, 6, 5]
>>> S = set()
>>> M = []
>>> for e in L:
...     if e in S:
...         continue
...     S.add(e)
...     M.append(e)
... 
>>> M
[2, 1, 4, 3, 5, 6]

如果顺序并不重要:

M = list(set(L))

这篇关于算法 - 如何删除有效列表中的重复元素?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆