根据唯一值列表拆分列表

假设我有一个名为的列表split_on_these,我想使用它来拆分另一个列表text。我首先填充split_on_these以免删除自然发生的split_on_these条目实例:


split_on_these = ['iv', 'x', 'v']

text = ["random iv text x hat v", "cat", "dog iv", "random cat x"]

padding = [" " + i + " " for i in split_on_these]

我正在尝试new_text在其中包含的所有项目上创建拆分,padding如下所示:


["random", "text", "hat", "cat", "dog", "random cat"]

我尝试将包含在其中的所有文本条目替换为padding某个字符~,然后拆分该字符,但问题是当您迭代文本中的条目时,有时它会是单词块,而有时它会是个别字母。


请注意,应保留分隔符之前的整个块(例如随机猫)。


哈士奇WWW
浏览 150回答 2
2回答

慕运维8079593

您已经通过填充分割词完成了“重拆分”。你剩下的是一个拆分和过滤序列text = ["random iv text x hat v", "cat", "dog iv"][word for sent in text for word in sent.split() if word not in split_on_these]这会将您的填充句子拆分为单个单词并过滤掉不需要的单词。结果:['random', 'text', 'hat', 'cat', 'dog']

至尊宝的传说

您可以使用 Python 的re 库。它具有更强大的split功能,可让您在正则表达式而不是单个字符上进行拆分。您可以创建一个匹配任何一个填充字符串的正则表达式,如下所示:re.split("iv|x|v", text)上面的正则表达式并不完美 - 您还必须考虑何时/是否匹配每个填充序列周围的空格。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python