Python - 如何检查字符串是否包含列表中的项,并在返回真时在循环中使用该项作为索引

1 投票
1 回答
6775 浏览
提问于 2025-04-17 19:16

基本上,我想要的是:

  • 一个循环,用来检查字符串中是否包含列表里的某个字符串/项目。简单来说,就是“当列表的当前索引找到匹配时,把这个项目作为字符串添加到一个新列表中”

来自另一个帖子中的例子:

some_list = ['abc-123', 'def-456', 'ghi-789', 'abc-456']
for any("abc" in s for s in some_list):
    #s isn't the index, right?

嗯,问题基本上就是,我该怎么做上面的事情。抱歉我的格式和英语不太好。

例子:

我有一个字符串 "La die la Blablabla and flowers are red"

我有一个数组 TheArray['Blablabla', 'thisonewillnotbefound', 'flowers', 'thisonenoteither', 'red']

我需要一个循环,遍历数组中的每个项目,每当找到一个存在于字符串中的项目时,就把它添加到一个全新的列表里。

1 个回答

10

这段代码会给你一个列表,里面是找到这个词在文本中出现的位置索引。

>>> text = 'Some text where the words should be'
>>> words = ['text', 'string', 'letter', 'words']
>>> [i for i, x in enumerate(words) if x in text]
[0, 3]

enumerate 是一个函数,它会接收一个可迭代的对象(比如列表),然后返回一个新的可迭代对象,里面的内容是元组。每个元组的第一个元素是从0开始的索引,第二个元素是你传给它的可迭代对象中的元素。

[i for i, x in ...] 是一种叫做列表推导式的写法,它其实就是一种简化的写for循环的方法。

撰写回答