为了账号安全,请及时绑定邮箱和手机立即绑定

删除重复项(python)

删除重复项(python)

墨色风雨 2022-04-23 17:02:55
我有一个这样的清单;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)


查看完整回答
反对 回复 2022-04-23
?
呼如林

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']]


查看完整回答
反对 回复 2022-04-23
?
侃侃无极

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)

尝试在这里玩并了解它是如何工作的,因为它是一个简单的实现,它显示了应该如何完成工作的基础知识,解决像这样的简单问题


查看完整回答
反对 回复 2022-04-23
  • 3 回答
  • 0 关注
  • 116 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信