如何查找列表元素的一个或多个特定子字符串是否重复。如同在列表的其他元素中一样,然后通过仅保留包含这些子字符串的第一个元素并删除每个其他元素(包含重复项的元素)使列表唯一。
示例:
SUBSTRINGS=['banana','chocolate']
MYLIST=['1 banana cake','2 banana cake','3 cherry cake','4 chocolate cake','5 chocolate cake','6 banana cake','7 pineapple cake']
在这种情况下,重复的子字符串是banana
和chocolate
。处理后,列表应该变为:
MYLIST=['1 banana cake','3 cherry cake','4 chocolate cake','7 pineapple cake']
答案 0 :(得分:0)
我们通过迭代原始exports.get = async () => {
console.log("data get");
const docs = await dataModel.find().lean().exec()
console.log("after exec");
const dataDocs = new DataClass(docs);
console.log(dataDocs);
return dataDocs;
};
来构建列表new_list
。我们使用MYLIST
集合跟踪已使用的子字符串(来自SUBSTRINGS
)。
all_substrings
答案 1 :(得分:0)
这是一个比发布的jmd_dk更简单的答案。到目前为止,两者都可以正常工作。
SUBSTRINGS = {'banana', 'chocolate'}
MYLIST = ['1 banana cake', '2 banana cake', '3 cherry cake', '4 chocolate cake', '5 chocolate cake', '6 banana cake', '7 pineapple cake']
m = []
for substr in MYLIST:
if any(el in substr for el in SUBSTRINGS):
if not any(substr.split()[1] in n for n in m):
m.append(substr)
else:
m.append(substr)
print(m)