python - 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/']
我尝试了几种方法,但无法实现这一点。请建议。谢谢
解决方案
您可以使用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/']
推荐阅读
- git - 删除特定文件的贡献者统计信息
- c++ - 如何从一个已经提前声明的类继承
- php - 无需付款即可触发 webhook 执行?
- java - 这个 java 行做什么
- java - Lucene解析不一致
- android - How to add the library live to my project?
- python - 为 Apache 服务器上的安全 WebSocket(wss) 连接部署 Django 通道
- python - ffmpeg video length is 0 when concatenating pictures
- node.js - 使用 TypeScript 和 nodemon:语法错误:无法在模块外使用 import 语句
- javascript - 脚本仅在特定工作表上运行