Mik*_*cic 8 python regex parsing
我正在用Python编写一个脚本,允许用户输入一个字符串,该字符串将指示脚本执行特定操作.为了争论,我会说我的命令列表是:
lock
read
write
request
log
Run Code Online (Sandbox Code Playgroud)
现在,我希望用户能够输入单词"log",它将执行特定操作,这非常简单.但是,我想匹配部分词.因此,例如,如果用户输入"lo",它应该匹配"lock",因为它在列表中更高.我已经尝试使用ccpes从libc中使用strncmp来实现这一目标,但还没有做出正面或反面.
Ned*_*der 16
如果您接受用户的输入,那么为什么您担心比较的速度?即使是最慢的技术也会比用户能够察觉的快得多.使用最简单,最容易理解的代码,并为紧密内循环留下效率问题.
cmds = [
"lock",
"read",
"write",
"request",
"log",
]
def match_cmd(s):
matched = [c for c in cmds if c.startswith(s)]
if matched:
return matched[0]
Run Code Online (Sandbox Code Playgroud)
这将做你想要的:
def select_command(commands, user_input):
user_input = user_input.strip().lower()
for command in commands:
if command.startswith(user_input):
return command
return None
Run Code Online (Sandbox Code Playgroud)
然而:
你似乎对错误的事情感到沮丧.所以50个用户意味着50毫秒 - 你不会因为那种"滞后"而逃离城镇.担心低效的数据库访问或用户输入"r"并在他们认为"请求"时获得"读取"而导致的问题.最大限度地减少用户击键的风险是20世纪60年代,这是不好笑的.他们在用什么?ASR33电传?至少你可以坚持一个独特的匹配 - "rea"用于读取和"req"请求.
| 归档时间: |
|
| 查看次数: |
5621 次 |
| 最近记录: |