首页 > 解决方案 > 匹配列表中的一个或多个特定字符串

问题描述

我想要一个在一个列表中附加一个或两个以上单词的函数。例如,我有一个名为 single_Word 的列表,由四个字符串组成:

single_Word = ['媒体中的新闻','汽车中的汽车','技术中的电子邮件','艺术中的绘画']

我想提取第一个单词(或者基本上是' in '之前的任何字符串),所以它可以返回以下输出:

['新闻','汽车','电子邮件','绘画']

我有以下代码显示我打算做什么:

text_list = []
for text in single_Word:
    x = text.split()
    text_list.append(x[0]) 
print(text_list)
# ['news', 'car', 'email', 'painting']

这对我来说很好并且可以按预期工作,但是一旦我有另一个包含多个字符串的列表,它就无法捕捉到它。我知道其中的主要原因是 x[0],它返回第一个元素,但我怎样才能改变它,以便它可以匹配多个字符串(或“in”之前的任何字符串)。以下是我将匹配的列表。

two_Word = ['媒体中的在线新闻','汽车中的汽车保险','技术中的电子邮件帐户','艺术中的绘画思想']

three_Word = ['媒体在线直播新闻','汽车在线汽车保险','技术中的电子邮件帐户设置','艺术中的绘画创意']

第二个和第三个列表的所需输出:

['在线新闻','汽车保险','电子邮件帐户','绘画创意']

['新闻在线直播','汽车保险在线','电子邮件帐户设置','绘画想法pinterest']

标签: pythonsplit

解决方案


谢谢@Ma0。它的工作原理是: split(' in ', 1)

text_list = []
for text in three_Word:
    x = text.split(' in ', 1)[0]
    text_list.append(x) 
print(text_list)

# ['news', 'car', 'email', 'painting']
# ['news online', 'car insurance', 'email account', 'painting ideas']
# ['news online live', 'car insurance online', 'email account settings', 'painting ideas pinterest']

推荐阅读