我有一个列表
l = ['abc', 'abcdef', 'def', 'defdef', 'polopolo']
我正在尝试删除已经在列表中存在的超级字符串。在这种情况下,结果应该是:
['abcdef', 'defdef', 'polopolo']
我已经编写了代码:
l=['abc','abcdef','def','defdef','polopolo']
res=['abc','abcdef','def','defdef','polopolo']
for each in l:
l1=[x for x in l if x!=each]
for other in l1:
if each in other:
res.remove(each)
但它似乎无法正常工作。我已经了解到在迭代列表时无法从中删除。因此,使用复制品res
,而l
是我的原始列表。
res.remove(each)
后立即跳出循环,你的代码就可以正常工作了 :) 为了更高效地实现这一点,请查看我的答案 :) - thefourtheye