在特定元素出现之前统计列表中的元素数

2024-09-28 19:08:29 发布

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

假设我们有一个单词列表存储在这样的列表中:

list_of_words = ["this", "is", "a", "text","for", "demonstration"]

此外,我还有一个精选单词列表:

selected_words = ["hello", "text", "demonstration"]

我想先计算在所选单词中出现的单词数(如果您愿意的话),然后再计算与单词列表中的单词相匹配的单词数。你知道吗

例如,所选单词中匹配的第一个单词是“text”,在单词列表中该单词前面有3个单词。匹配的第二个单词是“demonstration”,它前面有5个单词。所以输出应该是[3,5]。你知道吗

最有效的计算方法是什么?我似乎找不到其他人用python问过这个问题。你知道吗


Tags: oftexthello列表foristhis单词
1条回答
网友
1楼 · 发布于 2024-09-28 19:08:29

使用^{}和条件list comprehension

[i for i, word in enumerate(list_of_words) if word in selected_words]
# [3, 5]

如果涉及的列表非常大,您应该考虑事先将selected_words转换为set,以改进包含检查:

selected_words = set(selected_words)
[i for i, word in enumerate(list_of_words) if word in selected_words]
# [3, 5]

相关问题 更多 >