Python - 检查一个字符串的部分是否存在于列表中,并给出其匹配项的索引

7 浏览
0 Comments

Python - 检查一个字符串的部分是否存在于列表中,并给出其匹配项的索引

我试图让一段代码返回匹配项在列表中的索引,以便可以将另一个项目与该索引进行比较(实质上允许将两个不同的字符串与列表上的同一项进行比较)。我能够在完全匹配的情况下找到匹配项,但无法在部分字符串匹配时找到匹配项。以下是一些伪代码来展示我目前的情况:

mylist = ['abc', 'def', 'ghi', 'jkl', 'mno']
str1 = 'does mn have anything to do with it?'
str2 = 'I think mn is there'
b = [i for i, s in enumerate(mylist) if str1 in s]
print(b)

所以我的问题是,如何使'mno'的索引返回,以便在第一次检查后可以将str2与其进行比较。如果有更好的解决办法,我很愿意听听。

0
0 Comments

这是一个关于如何在Python中检查字符串的一部分是否存在于列表中,并给出其匹配的索引的问题。

问题的出现原因是,用户想要判断一个字符串的一部分是否在给定的列表中,并且希望得到匹配项的索引。用户提供了一个示例代码,其中包括一个字符串列表(mylist)、两个待检查的字符串(str1和str2)以及一个使用列表推导式的代码段来实现检查并返回匹配项的索引(b)。

解决方法是,用户使用了Python中的enumerate函数来获取列表中每个元素的索引,并使用列表推导式来对每个待检查的字符串进行搜索和匹配。具体来说,代码中的列表推导式使用了两个for循环,分别遍历列表中的每个元素和待检查字符串中的每个单词,并使用if条件语句来判断单词是否存在于元素中。如果存在,则使用enumerate函数返回的索引值作为匹配项的索引,并将其存储在列表b中。

最终,代码打印出了列表b,即匹配项的索引。

下面是完整的代码:

mylist = ['abc', 'def', 'ghi', 'jkl', 'mno']
str1 = 'does mn have anything to do with it?'
str2 = 'I think mn is there'
b = [i  for i, s in enumerate(mylist) for st in str2.split(' ') if st in s]
print(b)

运行以上代码,输出为:

[4]

这表示字符串'mn'在列表mylist的索引为4的元素中找到了匹配项。

通过使用列表推导式和enumerate函数,用户实现了在一个字符串的一部分是否存在于列表中,并返回其匹配的索引的功能。这是一种简洁高效的方法,适用于处理类似问题的情况。

0
0 Comments

Python - 检查字符串的一部分是否存在于列表中并给出其匹配的索引

在这个问题中,str1 in s永远不会为真,因为mylist的任何元素都不包含整个str1字符串。

假设单词边界很重要,你可以拆分字符串,然后找到包含该标记的字符串的索引。

b = []
for s1 in str1.split():
    for i, s2 in enumerate(mylist):
        if s1 in s2:
            b.append(i)

谢谢!这个方法完美地工作了,而且非常简洁 - 对于我的需求来说非常理想!

你也可以使用嵌套的列表推导式,就像其他答案中所示,但我发现这种方法很难阅读。

0
0 Comments

问题的出现原因:用户想要在一个字符串列表中查找是否存在某个字符串,并且希望得到该字符串在列表中的索引值。

解决方法:用户提供了两种解决方法。第一种方法是使用for循环,将字符串拆分成单词,然后遍历单词列表和给定的字符串列表,如果某个单词在给定的字符串列表中存在,则将该字符串在列表中的索引值添加到一个新的列表中。第二种方法是使用列表推导式,实现相同的功能。

输出结果:该问题给出了一个示例输出结果,即匹配的字符串在列表中的索引值为4。但是由于问题中没有提到str2字符串,所以不能确定这是否是问题所要求的输出结果。

0