首页 > 解决方案 > python代码从列表中删除元素的重复项或子字符串

问题描述

我有以下列表作为输入:

['temp/date=20-07-2019/', 'temp/date=21-07-2019/', 'temp/date=22-07-2019/', 'temp/date=22-07-2019/temp=22-07-2019/']

在输出中,我想排除“temp/date=22-07-2019/”,因为它是“temp/date=22-07-2019/temp=22-07-2019/”的一部分。因此输出应该是:

['temp/date=20-07-2019/', 'temp/date=21-07-2019/', 'temp/date=22-07-2019/temp=22-07-2019/']

我尝试了几种方法,但无法实现这一点。请建议。谢谢

标签: python

解决方案


您可以使用any列表推导:

r = ['temp/date=20-07-2019/', 'temp/date=21-07-2019/', 'temp/date=22-07-2019/', 'temp/date=22-07-2019/temp=22-07-2019/']
result = [i for i in r if not any(i in c and len(c) > len(i) for c in r)]

输出:

['temp/date=20-07-2019/', 'temp/date=21-07-2019/', 'temp/date=22-07-2019/temp=22-07-2019/']

推荐阅读