我有一个包含许多字符串的巨大列表,例如:
['xxxx','xx','xy','yy','x',......]
现在我正在寻找一种有效的方法来删除另一个字符串中存在的所有字符串。例如“xx”“x”适合“xxxx”。
由于数据集很大,我想知道除此之外是否有有效的方法
if a in b:
完整的代码:可能有一些优化部分:
for x in range(len(taxlistcomplete)):
if delete == True:
x = x - 1
delete = False
for y in range(len(taxlistcomplete)):
if taxlistcomplete[x] in taxlistcomplete[y]:
if x != y:
print x,y
print taxlistcomplete[x]
del taxlistcomplete[x]
delete = True
break
print x, len(taxlistcomplete)
代码的更新版本:
for x in enumerate(taxlistcomplete):
if delete == True:
#If element is removed, I need to step 1 back and continue looping.....
delete = False
for y in enumerate(taxlistcomplete):
if x[1] in y[1]:
if x[1] != y[1]:
print x[1],y[1]
print taxlistcomplete[x]
del taxlistcomplete[x[0]]
delete = True
break
print x, len(taxlistcomplete)
现在用枚举实现,只是现在我想知道这是否更有效以及如何实现删除步骤,所以我也有更少的搜索。
只是一个短暂的想法...
基本上是我想看的...
如果元素与列表中的任何其他元素不匹配,则将此元素写入文件。因此,如果 'xxxxx' 不在 'xx'、'xy'、'wfirfj' 等... 打印/保存
一个新的简单版本,因为我认为无论如何我都无法进一步优化它......
print 'comparison'
file = open('output.txt','a')
for x in enumerate(taxlistcomplete):
delete = False
for y in enumerate(taxlistcomplete):
if x[1] in y[1]:
if x[1] != y[1]:
taxlistcomplete[x[0]] = ''
delete = True
break
if delete == False:
file.write(str(x))