【发布时间】:2021-06-21 23:41:53
【问题描述】:
我有一个如下所示的列表:
[['rest'],['look'],['rest','look'],['resting','look],['apple','mango'],['apple', 'man'],['apple','banana','mango'],['rest','resting','look','looked','it','spit']]
必须删除作为另一个元素的子字符串/子序列的所有元素。例如元素['rest'] 和['look'] 已经存在于列表元素['rest','look'] 和['rest','resting','look','looked','it','spit'] 中,因此必须从最终列表中删除它们。此外,元素['rest','look'] 是 ['rest','resting','look','looked','it','spit'], so it should be removed. Similarly, ['resting','look']is a substring of[ 'rest','resting','look','looked','it','spit']`,所以它也必须被删除。元素 ['apple','mango'] 因为它是['apple','banana','mango'] 应该被删除,但 ['apple','man'] 不应该被删除,因为它不是一个常见的子序列。输出必须是一个列表而不是一个集合。
我试过了:
x = [['rest'],['look'],['rest','look'],['resting','look'],['apple','mango'],['apple','man'],['apple','banana','mango'],['rest', 'resting', 'look', 'looked', 'it', 'spit']]
res=[]
found=0
for i in x:
for item in i:
for j in x:
for item1 in j:
if item == item1:
found=1
if found==0:
res.append(item)
print res
我得到的输出是一个空列表。所需的输出是:
[['apple','man'],['apple','banana','mango'],['rest','resting','look','looked','it','spit']]
【问题讨论】:
-
您可以简单地将
list展平并将其转换为set,这样就可以了。 -
如果我的回答解决了,请接受并投票。
标签: python nested-lists