python - 匹配列表中的一个或多个特定字符串
问题描述
我想要一个在一个列表中附加一个或两个以上单词的函数。例如,我有一个名为 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']
解决方案
谢谢@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']
推荐阅读
- android - 即使应用程序关闭,如何在不点击通知的情况下启动活动?
- vue.js - 如果我只用数字迭代,我如何获得 v-for 组件的 v-model 值?
- java - 使用 Elasticsearch RestHighLevelClient 聚合日期
- html - Bootstrap 导航栏在 Mac 上看起来很奇怪
- java - 如何在 Maven 测试工具中使用 mockito
- c++ - 在没有对象参数的情况下调用非静态成员函数时发生错误
- java - 多个持续错误 IntelliJ
- linux - Libreoffice 转换为 pdf 日期格式语言
- plesk - Plesk Maria DB 管理员密码在从 5.5 升级到 10.2 后更改
- java - 将 gmt 转换为 ist 不可解析的日期异常