我要检查两个单词同时存在于同一列表中。
例如
我有一个单词列表,就像
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
如果列表包含许多元素,并且数据框包含许多单词,则将花费大量时间来运行此代码。 反正我的代码更快?
答案 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
的相同副本一遍又一遍),但这是您原始循环的作用。 :)