如何检测字符串后缀并从列表中删除这些后缀元素? 我知道这看起来像一个 NLP、词干提取/词形还原任务,但该任务需要一个更简单的功能。
鉴于,如果列表中存在非后缀项,我需要删除具有s
和后缀的元素:es
alist = ['bar','barbar','foo','foos','barbares','foofoos','bares']
我需要输出:
alist = ['bar','barbar','foo','foofoos']
我尝试了以下方法,但它不起作用,因为当我整理 alist 时,它['bar', 'barbar', 'barbares', 'bares', 'foo', 'foofoos', 'foos']
没有['bar', 'bares', 'barbar', 'barbares', 'foo', 'foos', 'foofoos']
alist = ['bar','barbar','foo','foos','barbares','foofoos','bares']
prev = ""
no_s_list = []
for i in sorted(alist):
if i[-2:] == "es" and i[:-2] == prev:
continue
elif i[-1:] == "s" and i[:-1] == prev:
contine
else:
prev = i
no_s_list.append(i)
上述输出:
>>> sorted(alist)
['bar', 'barbar', 'barbares', 'bares', 'foo', 'foofoos', 'foos']