【发布时间】:2020-02-06 08:48:09
【问题描述】:
我有一个二维列表,我想删除重复项,但仍通过使用列表理解来保持列表中的顺序。例如下面是我的列表
Df = [[2,4,6,6,7],[3,4,5,7,9,3,5],[2,4,6,8]]
我希望我的结果是
Df2 = [[2,4,6,7],[3,4,5,7,9,],[2,4,6,8]]
【问题讨论】:
标签: python python-3.x list multidimensional-array
我有一个二维列表,我想删除重复项,但仍通过使用列表理解来保持列表中的顺序。例如下面是我的列表
Df = [[2,4,6,6,7],[3,4,5,7,9,3,5],[2,4,6,8]]
我希望我的结果是
Df2 = [[2,4,6,7],[3,4,5,7,9,],[2,4,6,8]]
【问题讨论】:
标签: python python-3.x list multidimensional-array
如果顺序不重要,应该这样做
Df2 = [list(set(item)) for item in Df]
如果顺序很重要,试试下面的代码
from collections import OrderedDict
Df2 = [list(OrderedDict.fromkeys(item)) for item in Df]
输入
Df = [[2,4,6,6,7],[3,4,5,7,9,3,5],[2,4,6,8]]
输出1
Df2 = [[2, 4, 6, 7], [3, 4, 5, 7, 9], [8, 2, 4, 6]]
输出2
Df2 =[[2, 4, 6, 7], [3, 4, 5, 7, 9], [2, 4, 6, 8]]
【讨论】:
set 仍然是 specified as unordered。您不能确保这将在任何和所有实现中起作用。您需要一个 OrderedSet 或使用 OrderedDict 来帮助自己确保它始终有效。