在Python中将包含某个单词的数组的索引存储到另一个数组中

2024-10-06 09:17:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这些清单:

array = ['I love school', 'I hate school', 'I hate bananas', 'today is 
friday', 'worldcup is great']

#finalArray is initially an empty list
finalArray = []  

我想把包含单词“school”的“array”的索引保存到“finalArray”中。意思是“finalArray”应该变成这样:

^{pr2}$

我尝试了以下代码,但它不起作用:

^{3}$

为什么不起作用?有更好的方法吗?在


Tags: antodayisarraylistemptyschoolfriday
3条回答

您可以检查当前迭代元素中是否存在"school"

array = ['I love school', 'I hate school', 'I hate bananas', 'today is friday', 'worldcup is great']
new_array = [i for i in array if "school" in i]

输出:

^{pr2}$

您的解决方案不起作用,因为您正在检查示例数组中的整个单词“school”。要完成您想要的,您必须遍历列表并检查每个元素是否包含“school”:

array = ['I love school', 'I hate school', 'I hate bananas', 'today is friday', 'worldcup is great']
finalArray = []

for element in array:
    if 'school' in element.lower():
        finalArray.append(element)

请注意,我为每个选中的元素添加了一个lower(),以确保您的程序也能在输入列表中捕获“School”。在

您需要遍历数组,查看目标单词school是否在该数组元素中。然后把索引放到你的列表中。在

final_array = [i for i in range(len(array)) if "school" in array[i]]

输出:

^{pr2}$

您最初的尝试没有做到这一点:index可以在句子中找到school的位置,而不是数组中包含school的句子的位置。在

更多Python技术的改进:

[i for i, phrase in enumerate(array) if "school" in phrase]

相关问题 更多 >