如何让我的python脚本循环更快地运行并使用更少的循环?

时间:2020-10-05 15:22:12

标签: python

我要检查两个单词同时存在于同一列表中。

例如

我有一个单词列表,就像

server: port: 8082 management: server: port: 8081

并有一个名为df的数据框,如

df

word_list = [I have a dream, I am a dreamer]

我要检查两个单词同时存在于同一列表中。所以我写了这样的代码

# word1  word2
#  have   dream
#  basketball player

如果列表包含许多元素,并且数据框包含许多单词,则将花费大量时间来运行此代码。 反正我的代码更快?

1 个答案:

答案 0 :(得分:1)

我会这样做:

tokens = set(word_list.split())
text = [
    word_list for _, row in df.iterrows() 
    if row["word1"] in tokens and row["word2"] in tokens
]

由于word_list从未更改,因此您只需在其中构建一个set,然后在此之后进行的每个word in tokens检查都是固定时间的,而无需在整个列表。

请注意,我不确定这是否实际上是您要构建的列表(word_list的相同副本一遍又一遍),但这是您原始循环的作用。 :)