TN8*_*888 5 python string list contain
我有Python应用程序.
有450个禁止短语列表.有来自用户的消息.我想检查,这条消息是否包含任何这种禁止的删除症状.最快的方法是什么?
目前我有这个代码:
message = "sometext"
lista = ["a","b","c"]
isContaining = false
for a, member in enumerate(lista):
if message.contains(lista[a]):
isContaining = true
break
Run Code Online (Sandbox Code Playgroud)
有没有更快的方法呢?我需要在不到1秒的时间内处理消息(最多500个字符).
有专门针对它的任何内置功能:
>>> message = "sometext"
>>> lista = ["a","b","c"]
>>> any(a in message for a in lista)
False
>>> lista = ["a","b","e"]
>>> any(a in message for a in lista)
True
Run Code Online (Sandbox Code Playgroud)
或者,您可以检查集合的交集:
>>> lista = ["a","b","c"]
>>> set(message) & set(lista)
set([])
>>> lista = ["a","b","e"]
>>> set(message) & set(lista)
set(['e'])
>>> set(['test','sentence'])&set(['this','is','my','sentence'])
set(['sentence'])
Run Code Online (Sandbox Code Playgroud)
但是您将无法检查子词:
>>> set(['test','sentence'])&set(['this is my sentence'])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1349 次 |
| 最近记录: |