Python - 检查一个字符串的部分是否存在于列表中,并给出其匹配项的索引
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与其进行比较。如果有更好的解决办法,我很愿意听听。
这是一个关于如何在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函数,用户实现了在一个字符串的一部分是否存在于列表中,并返回其匹配的索引的功能。这是一种简洁高效的方法,适用于处理类似问题的情况。