python - 在保持序列的同时删除二维数组中的重复项

标签 python arrays

我发现了很多关于删除数组中重复项的话题,但没有一个适合我的特定用例。我有一个二维列表,我需要从中删除重复项,但是我必须保持原始序列

mylist = [['Installation', '64%'], ['C2', '14%'], ['NA', '14%'], ['C2', '14%'], ['NA', '14%'], ['na', '7%']]

我需要简单地删除重复项而不重新排列,所以..

newlist = [['Installation', '64%'], ['C2', '14%'], ['NA', '14%'], ['na', '7%']]

感谢任何帮助

最佳答案

使用 set跟踪看到的项目:

>>> mylist = [['Installation', '64%'], ['C2', '14%'], ['NA', '14%'], ['C2', '14%'], ['NA', '14%'], ['na', '7%']]
>>> seen = set()
>>> newlist = []
>>> for item in mylist:
...     t = tuple(item)
...     if t not in seen:
...         newlist.append(item)
...         seen.add(t)
...
>>> newlist
[['Installation', '64%'], ['C2', '14%'], ['NA', '14%'], ['na', '7%']]

注意

您需要将列表转换为元组(列表不可散列);无法添加要设置的列表。

>>> seen = set()
>>> seen.add([1,2])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
>>> seen.add(tuple([1,2]))
>>>

关于python - 在保持序列的同时删除二维数组中的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21065347/

相关文章:

c# - 一步获取使用索引数组的子数组

arrays - 排序算法与完全排序的总比较

python - 获取一个表达式作为 python 的输入

java - 循环遍历多个数组列表并获取元素

python - 我可以向用户询问一个号码,然后将对应号码的图像粘贴到空白图像中吗?

python - 按地址获取 'erc-20' 交易的列表

javascript - 表单文本字段变量在 Javascript 中显示未定义

php - 类型检查所有数组元素

python - 如何使用 python 的 httplib2 保存文件?

python - 错误 - b'sasl_client_start (-4) SASL(-4) : no mechanism available: Unable to find a callback: 2' 中的错误