我有一个这样的清单;a=[['2019', '08'], ['2018', '10'], ['2019', '08'], ['2019', '08'], ['2018', '10'], ['2019', '02']]如何删除重复项。[['2019', '08'], ['2018', '10'], ['2019', '02']]
3 回答
慕姐8265434
TA贡献1813条经验 获得超2个赞
如果顺序很重要(但算法复杂性不重要):
b = []for x in a: if x not in b: b.append(x)
如果复杂性相关,这里有一个 O(𝑛) 解决方案:
seen = set()b = []for x in a: t = tuple(x) if t not in seen: b.append(x) seen.add(t)
呼如林
TA贡献1798条经验 获得超3个赞
你可以很容易地做到这一点
a=[['2019', '08'], ['2018', '10'], ['2019', '08'], ['2019', '08'], ['2018', '10'], ['2019', '02']]
uniq = []
[uniq.append(x) for x in a if x not in uniq]
uniq
>>[['2019', '08'], ['2018', '10'], ['2019', '02']]
侃侃无极
TA贡献2051条经验 获得超10个赞
显然,如果您不知道此方法。我强烈建议您从这个实现开始,了解它是如何工作的,然后继续进行更高级别的实现
a=[['2019', '08'], ['2018', '10'], ['2019', '08'], ['2019', '08'], ['2018', '10'], ['2019', '02']]
print(a)
b = []
for l in a:
if l not in b:
b.append(l)
print(b)
尝试在这里玩并了解它是如何工作的,因为它是一个简单的实现,它显示了应该如何完成工作的基础知识,解决像这样的简单问题
添加回答
举报
0/150
提交
取消