【发布时间】:2015-03-03 02:34:48
【问题描述】:
我有 Python 应用程序。
有 450 个禁止短语的列表。有来自用户的消息。我想检查一下,这条消息是否包含任何禁止的短语。最快的方法是什么?
目前我有这个代码:
message = "sometext"
lista = ["a","b","c"]
isContaining = false
for a, member in enumerate(lista):
if message.contains(lista[a]):
isContaining = true
break
有没有更快的方法来做到这一点?我需要在 1 秒内处理消息(最多 500 个字符)。
【问题讨论】:
-
isContaining = any(x in message for x in lista) -
首先,去掉
enumerate和a,部分。将lista[a]替换为member。第二,in函数不是更快吗?所以像if member in message: -
a
set上的会员测试更快。 -
我认为你最好编译一个正则表达式并测试它上面的文本
-
1秒很长,真的需要更长的时间吗?
标签: python string list contain