Python如何处理'如果列表中的对象'的检查

Jon*_*now 3 python algorithm performance list

我想知道因为我需要有一个令人厌恶的功能,检查一个单词是否在字典列表中 - 我正在考虑将字典保留为一个大字符串并反而运行正则表达式.这需要非常快.所以我只需要一个基本的概述, python 如何处理检查字符串是否在字符串列表中,以及它是否超出合理的速度.

Gar*_*ees 10

如果你想要一个超快速的成员资格测试,那么列表就是错误的数据结构.看看的实施list_containslistobject.c,线437.它按顺序迭代列表,依次将项目与每个元素进行比较.项目出现在列表中的时间越晚,查找项目所需的时间越长,如果项目丢失,则必须扫描整个列表.

改用一套.集合由散列表在内部实现,因此查找对象涉及计算其散列,然后扫描一些表条目(通常只有一个).对于查找字符串中的特殊情况下,看到set_lookkey_stringsetobject.c,线路156.